【问题标题】:Migration of EJB 2.1 from Weblogic to JBossEJB 2.1 从 Weblogic 迁移到 JBoss
【发布时间】:2017-10-31 14:25:18
【问题描述】:

我有一个(非常)旧的应用程序,它是用几个消息驱动 Bean 编写的(别担心,我最终会将它们链锯掉并编写一些可维护到未来的东西)。

应用程序被打包为一个 EAR,其中包含多个 JAR。这是一个简化的布局:

- app
  -- appDataModel
  -- appJaxbModel
  -- appEjb
  -- appEar

我的问题是由于 EAR 在 Weblogic 10.3.x 上工作正常,但是 appEjb 模块中的类(在 EAR 中构建为 appEjb.jar)看不到 appDataModel 中的类(构建为 appDataModel.jar在 EAR 中)当我部署到 JBoss 6.4 EAP 时。我也运行了 Red Hat 的迁移工具,但没有任何建议(无论如何都与此相关)

我尝试将 jboss-deployement-structure.xml 中的隔离设置为 false,但没有成功。这可能很简单,也可能与类加载的差异有关:我真的不知道。

有人可以帮忙吗?

【问题讨论】:

    标签: jboss ejb weblogic ear


    【解决方案1】:

    如果 appDataModelappJaxbModel 不是 ejb-jar,则将它们移动到 EAR 内的 lib 目录。然后它们将对所有内容可见。

    你应该完成这样的结构:

    - app
      -- lib
          -- appDataModel
          -- appJaxbModel
      -- appEjb
      -- appWar
    

    这是完全可移植的,也应该在 WebLogic 10.3.x 中工作

    (我假设您的最后一个模块旨在成为 WAR,因为您无法将 EAR 打包在 EAR 中)。

    【讨论】:

    • 这是正确答案。 Weblogic 很好,罐子在 APP-INF/lib 下,但 JBoss 期望它们在 lib 下。我喜欢 Oracle 如何创建 J2EE 标准,然后打破它。感谢您的回答。
    • 公平地说,APP-INF/lib 是一个旧的 BEA(被甲骨文收购)想法,早于EAR/lib 机制的标准化。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-03
    • 2018-11-02
    • 1970-01-01
    • 2010-12-29
    相关资源
    最近更新 更多