我正在从JBoss 5.1迁移到Wildfly 8.2,我正在使用resteasy和一些EAR部署Web服务,其中包含从数据库获取所请求数据的代码。 EAR都有多个(6)JAR,但是当我调用Web服务时,它无法找到EAR并引用它的JAR
14:57:48,183 INFO [stdout](默认任务-4)InitialContextFactory未定义 - 使用默认值:org.jnp.interfaces.NamingContextFactory
14:57:48,184 ERROR [stderr](默认任务-4)javax.naming.NameNotFoundException:bpc / AccountManagementService - service jboss.naming.context.java.bpc.AccountManagementService
我有2个单独部署的EAR和WAR,它们都是同时部署的,它们都可以毫不费力地部署。
为什么现在无法整合是我的问题。
答案 0 :(得分:1)
如果你从jboss 5迁移到wildfly,你必须调整你的jndi查找..你得到一个NameNotFoundException,所以你可能正在使用旧的jndi语法执行查找..
启动服务器时,日志会显示ejbs的不同jndi名称。 如果你正在寻找一个来自战争的ejb,并且它们都没有捆绑在同一个耳朵中,那么你必须使用java:global命名类型..
例如,假设AccountManagementService是一个接口,使用@Remote注释它,并使用以下jndi语法从您的战争中搜索它
java:global/earName/ejb-jar-name/AccountManagementService!com.example.AccountManagementServiceImpl
查看此文档是否有帮助(修改JNDI查找代码部分)https://docs.jboss.org/author/display/AS71/Order+Application+Migration+from+EAP5.1+to+AS7
答案 1 :(得分:0)
我通过在web-inf文件夹下的WAR文件中添加jboss-deployment-structure.xml解决了这个问题 通过添加依赖性,如
dependencies>
<module name="deployment.MY_EAR.ear.MY_EJB_JAR.jar"/>
</dependencies>
答案 2 :(得分:0)
我有类似的问题。 我正在从Weblogic迁移到Wildfly。
一个只有一个属性文件和一个EAR的JAR,可以同时部署而没有任何问题。 从EAR应用程序中,需要从JAR访问属性文件。
这在weblogic中工作正常,但wildfly无法识别属性文件。