2010-06-05 111 views

回答

3

不是。如果可以进行CORBA调用,大多数容器都支持CORBA作为与远程EJB交谈的协议,但我不会推荐它。

将EJB Session Bean调用暴露为SOAP Web服务,或者简单地将它与Servlet对应并将其作为临时Web服务调用即可。

现在,如果您在Java EE服务器(Resin,我相信可以运行PHP)内运行PHP,那么您可能会调用可调用EJB方法的Java调用。

但坦率地说,假设你可以写它们,web服务或ad hoc网站门面可能是你最好的,最快捷的成功之路。

+0

这是Caucho的栓皮栎,将运行PHP。它不必在Resin中托管。 http://quercus.caucho.com/ – 2010-06-06 00:28:58

1

有一些库可以执行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>"); 
?> 
+0

这会用比简单的“num”更复杂的结构工作吗? – 2010-06-05 23:55:17