【问题标题】:Glassfish 2 application on Glassfish 4: "Cannot resolve reference... because there are 2 ejbs in the application"?Glassfish 4 上的 Glassfish 2 应用程序:“无法解析引用...因为应用程序中有 2 个 ejb”?
【发布时间】:2014-08-02 09:54:03
【问题描述】:

所以,在过去的两周里,我一直在努力解决这个问题。我的任务是将应用程序服务器从 glassfish 2 升级到 glassfish 4,而在 GF2 上运行的应用程序在我的脸上抛出了这个错误:“无法解析引用......因为带有接口的应用程序中有 [2] 个 ejb。 。”

应用程序被打包在一个耳朵里,里面有两个战争模块。问题是这两个模块与在 NetBeans 上开发时添加到库中的库具有相同的 ejb 项目。这意味着这两个战争的 WEB-INF/lib 文件夹中确实有相同的 ejb.jar。我只是找不到解决方法。我试图从这两个项目的库中删除 ejb,只需在 ear 的根目录中添加 ejb-jar,然后在这些 war 项目的清单中定义类路径。这导致 NetBeans 方面出现许多错误,并且还导致这些项目的构建失败。

我正在使用命令行 ant 来构建战争并将它们放在耳朵里。

问题是项目的源代码不是由我完成的,我不确定应该从哪里解决这个问题。

【问题讨论】:

    标签: java jakarta-ee netbeans ant glassfish


    【解决方案1】:

    我会说你正朝着正确的方向前进。将您的 ejb-jar 文件放在 .ear 文件的 lib 文件夹中。然而,EE7 中有关于放置例如持久性根的“规则更改”。也许如果你的 ejb-jar 中有一个 persistence.xml 文件,当你把它放在 .ear 档案的根目录中时,它会产生你看到的错误

    在 Java Persistence API 1.0 中,JAR 文件可以位于 EAR 文件的根目录中作为持久性单元的根目录。这不再受支持。可移植应用程序应该使用 EAR 文件的库目录作为持久单元的根目录。

    你可以找到全文here

    您可能想探索 ee5 和 ee7 之间的区别,尤其是 GF2.x 和 gf4.x。您可能会发现这些链接很有用 ee7 highlightsee6 highlights

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-25
      • 1970-01-01
      • 1970-01-01
      • 2015-03-29
      • 1970-01-01
      • 2023-03-29
      相关资源
      最近更新 更多