2010-06-05 8 views

Répondre

3

Pas vraiment. Si vous pouvez effectuer des appels CORBA, la plupart des conteneurs prennent en charge CORBA en tant que protocole pour parler à un EJB distant, mais je ne le recommanderais pas. Vous auriez plus de chance d'exposer l'appel EJB Session Bean en tant que service Web SOAP, ou simplement de le masquer avec une servlet et de l'appeler en tant que service Web ad hoc. Maintenant, si vous exécutez PHP dans un serveur Java EE (je pense que la résine peut exécuter PHP), vous pourrez peut-être appeler un appel Java qui peut appeler une méthode EJB. Mais, franchement, le service Web ou la façade Web ad hoc est probablement le meilleur et le plus rapide pour réussir, en supposant que vous êtes autorisé à les écrire.

+0

Il est Quercus Caucho qui se déroulera PHP. Il n'est pas nécessaire qu'il soit hébergé dans Resin. http://quercus.caucho.com/ –

1

Il existe des bibliothèques qui implémentent un pont Java/Php, telles que PHP/Java Bridge.

Donc, si vous utilisez 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

Est-ce que cela fonctionnera avec des structures plus complexes qu'un simple "num"? –

Questions connexes