2017-09-08 5 views
0

J'ai un projet webservice et un projet EJB 3.0 déployés dans le panache Tomee dans le même EAR. De la classe webservice j'appelle la classe de bean EJB en utilisant l'interface distante. J'ai utilisé plusieurs objets InitialContextFactory, mais rien ne semble fonctionner. Chaque fois que je reçoisjavax.naming.NameNotFoundException dans tomee plume ejb 3.0 et webservices

javax.naming.NameNotFoundException: Nom "TestRemote" not found

pendant le déploiement, ce journal arrive dans le serveur.

08-Sep-2017 16: 23: 09,587 INFO [principale] org.apache.openejb.assembler.classic.JndiBuilder.bind JNDI (name = TestRemote) -> Ejb (déploiement id = Test)

Voici le code de ma classe WebService

 Properties properties = new Properties(); 
     properties.put("java.naming.factory.initial", "org.apache.openejb.core.OpenEJBInitialContextFactory"); 
     properties.put("java.naming.provider.url", "http://localhost:8081"); 
     InitialContext ic = new InitialContext(properties); 
     TestRemote PSBR = (TestRemote) ic.lookup("TestRemote"); 

en dehors de OpenEJBInitialContextFactory, j'ai essayé org.apache.openejb.core.LocalInitialContextFactory et RemoteInitialContextFactory mais obtenir la même erreur à chaque fois.

Répondre

0

J'ai utilisé ce code et ai changé dans system.properties et il a été résolu.

properties.put(Context.INITIAL_CONTEXT_FACTORY, "org.apache.openejb.client.RemoteInitialContextFactory"); 
properties.put(Context.PROVIDER_URL, "http://127.0.0.1:8081/tomee/ejb"); 

et de modifier dans system.properties.

# allowed packages to be deserialized, by security we denied all by default, tune tomee.serialization.class.whitelist packages to change it 
tomee.remote.support = true 
tomee.serialization.class.whitelist = * 
tomee.serialization.class.blacklist = -