Liberty Profile - 远程EJB

时间:2015-10-25 07:32:23

标签: websphere-liberty

我正在尝试从我的应用程序调用远程ejb并收到错误

  

org.springframework.web.util.NestedServletException:请求处理失败;嵌套异常是java.lang.RuntimeException:javax.naming.NameNotFoundException:CNTR4009E:OutOfTheHouse中OutOfTheHouse-EJB.jar模块中InventoryServiceBean企业bean的edu.osu.cse5234.ooth.business.view.InventoryService远程接口 - 无法获取java:global / OutOfTheHouse-EJBEAR / OutOfTheHouse-EJB / InventoryServiceBean!edu.osu.cse5234.ooth.business.view.InventoryService JNDI名称的EJBEAR应用程序,因为配置的任何功能都不支持远程接口server.xml文件。

我发现我们需要添加

<featureManager>
    <feature>ejbRemote-3.2</feature>
    <feature>localConnector-1.0</feature>
</featureManager>

但是我没有在我的server.xml中添加ejbRemote的选项。 可能是什么原因?

3 个答案:

答案 0 :(得分:0)

打开server.xml,在设计模式下查看(与源模式相反),展开“服务器配置”,然后单击“功能管理器”。在右侧,将列出功能管理器deatails。单击“添加”。添加以下功能:

ejblite-3.2 JavaEE的-7.0 JNDI-1.0 localConnnector-1.0

此外,请确保将EAR项目添加到WAS自由配置文件中。将控制台日志级别增加到INFO(服务器管理器 - &gt;添加 - &gt;日志记录,然后在详细信息窗口中编辑控制台日志级别)。控制台输出将完全按容器生成的方式吐出JNDI名称。将粘贴复制到ServiceLocator代码中。

  • 普利文

答案 1 :(得分:0)

一旦启用功能&#34; webProfile-7.0&#34;我就会收到此错误或&#34; javaee-7.0&#34;。这些功能加载了其他功能,似乎其中一个功能阻止了EJB的绑定。此外,在这种情况下,没有包含JNDI名称的日志条目。为了解决这个问题,我只启用了我真正需要的功能(在我的例子中,servlet-3.1,localConnector-1.0,ejbLite-3.2,ejbRemote-3.2,jsp-2.3)。这也加快了服务器的启动速度。

答案 2 :(得分:-1)

问题在于我使用的自由配置文件的版本。我使用了另一个,我能够添加javaee-7.0作为功能,之后它工作正常。