/** * Finally this method does the lookup for the passed resource identifier * using the also passed connection. * * @param \TechDivision\Naming\ResourceIdentifier $resourceIdentifier The identifier for the requested bean * @param \TechDivision\PersistenceContainerClient\Connection $connection The connection we use for loading the bean * @param string $sessionId The session-ID, necessary for lookup stateful session beans * * @return object The been proxy instance */ protected function doLookup(ResourceIdentifier $resourceIdentifier, Connection $connection, $sessionId = null) { // initialize the session $session = $connection->createContextSession(); // check if we've a HTTP session-ID if ($sessionId == null && $this->getServletRequest() && ($servletSession = $this->getServletRequest()->getSession())) { $sessionId = $servletSession->getId(); // if yes, use it for connecting to the stateful session bean } elseif ($sessionId == null) { $sessionId = Uuid::uuid4()->__toString(); // simulate a unique session-ID } else { // do nothing, because a session-ID has been passed } // set the HTTP session-ID $session->setSessionId($sessionId); // load the class name from the resource identifier => that is the path information $className = $resourceIdentifier->getClassName(); // lookup and return the requested remote bean instance return $session->createInitialContext()->lookup($className); }