【问题标题】:WAR outside the EAR, not able to reference JAR inside EAR. In wildfly 8EAR 外部的 WAR,无法引用 EAR 内部的 JAR。在野蝇 8
【发布时间】:2015-02-14 00:36:55
【问题描述】:

我正在从 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 错误 [stderr](默认任务 4)javax.naming.NameNotFoundException: bpc/AccountManagementService -- 服务 jboss.naming.context.java.bpc.AccountManagementService

我有 2 个单独的 EAR 和 WAR 部署,它们同时部署,它们都可以轻松部署。

为什么不能集成是我现在的问题。

【问题讨论】:

    标签: web-services jakarta-ee jboss ear wildfly


    【解决方案1】:

    我有类似的问题。 我正在从 weblogic 迁移到 wildfly。

    一个 JAR,它只有一个属性文件和一个 EAR,两者同时部署,没有任何问题。 从 EAR 应用程序,需要从 JAR 访问属性文件。

    这在 weblogic 中运行良好,但 wildfly 无法识别属性文件。

    【讨论】:

      【解决方案2】:

      我通过在 web-inf 文件夹下的 WAR 文件中添加 jboss-deployment-structure.xml 解决了这个问题 通过添加类似的依赖项

      dependencies>  
                  <module name="deployment.MY_EAR.ear.MY_EJB_JAR.jar"/>  
      </dependencies>
      

      【讨论】:

        【解决方案3】:

        如果你从 jboss 5 迁移到 wildfly,你必须调整你的 jndi 查找。你得到一个 NameNotFoundException,所以你可能正在使用旧的 jndi 语法执行查找。

        当您启动服务器时,日志将显示您的 ejb 的不同 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

        【讨论】:

          猜你喜欢
          • 2013-12-19
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-06-23
          • 1970-01-01
          相关资源
          最近更新 更多