Как вызвать сеанс сеанса EJB из PHP?

Есть ли способ вызвать сессию сеанса EJB из PHP? Существуют ли какие-либо конкретные функции для этого?

На самом деле, нет. Если вы можете совершать вызовы CORBA, большинство контейнеров поддерживают CORBA в качестве протокола для разговора с удаленным EJB, но я бы не рекомендовал его.

Вам было бы лучше удаться, если бы вызов EJB Session Bean выполнялся как веб-служба SOAP, или просто фасад с помощью сервлета и вызывать его как специальный веб-сервис.

Теперь, если вы используете PHP на сервере Java EE (Resin, я считаю, может запускать PHP), тогда вы можете вызвать вызов Java, который может вызвать метод EJB.

Но, честно говоря, веб-сервис или специальный веб-фасад, скорее всего, ваш лучший и быстрый путь к успеху, предполагая, что вам разрешено писать их.

Есть некоторые библиотеки, которые выполняют реализацию моста Java / Php, например PHP / Java Bridge .

Поэтому, если вы используете IBM WebSphere ( source ):

<?php // Get the provider URL and Initial naming factory // These properties were set in the script that started the Java Bridge $system = new Java("java.lang.System"); $providerUrl = $system->getProperty("java.naming.provider.url"); $namingFactory = $system->getProperty("java.naming.factory.initial"); $envt = array( "javax.naming.Context.PROVIDER_URL" => $providerUrl, "javax.naming.Context.INITIAL_CONTEXT_FACTORY" => $namingFactory,); // Get the Initial Context $ctx = new Java("javax.naming.InitialContext", $envt); // Find the EJB $obj = $ctx->lookup("WSsamples/BasicCalculator"); // Get the Home for the EJB $rmi = new Java("javax.rmi.PortableRemoteObject"); $home = $rmi->narrow($obj, new Java("com.ibm.websphere.samples.technologysamples.ejb.stateless.basiccalculatorejb.BasicCalculatorHome")); // Create the Object $calc = $home->create(); // Call the EJB $num = $calc->makeSum(1,3); print ("<p> 1 + 3 = $num </p>"); ?>