tomee plume ejb 3.0和webservices中的javax.naming.NameNotFoundException

时间:2017-09-08 11:12:55

标签: jax-ws ejb-3.0 tomee

我在同一个EAR中的Tomee plume中部署了一个webservice项目和一个EJB 3.0项目。 从webservice类我使用远程接口调用EJB bean类。 我使用了多个InitialContextFactory对象,但似乎没有任何效果。每次我得到

javax.naming.NameNotFoundException:找不到名称“TestRemote”

部署时,此日志即将进入服务器。

08-Sep-2017 16:23:09.587 INFO [main] org.apache.openejb.assembler.classic.JndiBuilder.bind Jndi(name = TestRemote) - > EJB(部署-ID =试验)

以下是我的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");

除了OpenEJBInitialContextFactory,我尝试过 org.apache.openejb.core.LocalInitialContextFactory RemoteInitialContextFactory ,但每次都会遇到相同的错误。

1 个答案:

答案 0 :(得分:0)

我使用了这段代码,并在system.properties中进行了更改,并得到了解决。

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

并在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 = -