/** * Finally this method does the lookup for the passed resource identifier * using the also passed connection. * * @param \AppserverIo\Psr\Naming\ResourceIdentifier $resourceIdentifier The identifier for the requested bean * @param \AppserverIo\RemoteMethodInvocation\ConnectionInterface $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, ConnectionInterface $connection, $sessionId = null) { // initialize the context session $session = $connection->createContextSession(); // check if we've a HTTP session ID passed if ($sessionId == null) { // simulate a unique session ID $session->setSessionId(SessionUtils::generateRandomString()); } else { // else, set the passed session ID $session->setSessionId($sessionId); } // check if we've a HTTP servlet request that may contain a session if ($servletRequest = $this->getServletRequest()) { $session->injectServletRequest($servletRequest); } // 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); }
/** * Checks if the resource identifier will be initialized * propertly from the data of a passed URL. * * @return void */ public function testPopulateFromUrl() { // populate the identifier with the data of the passed URL $this->resourceIdentifier->populateFromUrl(ResourceIdentifierTest::TEST_URL); // check the data from the resource identifier $this->assertSame($this->resourceIdentifier->getScheme(), 'php'); $this->assertSame($this->resourceIdentifier->getUser(), 'user'); $this->assertSame($this->resourceIdentifier->getPass(), 'password'); $this->assertSame($this->resourceIdentifier->getHost(), '127.0.0.1'); $this->assertSame($this->resourceIdentifier->getPort(), 9080); $this->assertSame($this->resourceIdentifier->getPath(), '/example/index.pc/TechDivision/Example/Services/UserProcessor'); $this->assertSame($this->resourceIdentifier->getQuery(), 'SESSID=sadf8dafs879sdfsad'); $this->assertSame($this->resourceIdentifier->getFilename(), '/example/index.pc'); $this->assertSame($this->resourceIdentifier->getContextName(), 'example'); $this->assertSame($this->resourceIdentifier->getPathInfo(), '/TechDivision/Example/Services/UserProcessor'); }