所以,在过去的两周里,我一直在努力解决这个问题。我的任务是将应用程序服务器从glassfish 2升级到glassfish 4,并且在GF2上运行的应用程序会在我的脸上抛出此错误:"无法解析引用...因为应用程序中有[2] ejbs界面.."
应用程序包装在一个耳内,里面有两个war模块。问题是这两个模块都具有与在NetBeans上开发时在库中添加的库相同的ejb项目。这意味着这两个战争在WEB-INF / lib文件夹中都有相同的ejb.jar。我只是找不到这个方法。我试图从这两个项目的库中删除ejb,只需在耳根中添加ejb-jar,然后在这些war项目的清单中定义类路径。这导致NetBeans端出现大量错误,并导致这些项目的构建失败。
我使用命令行ant来构建战争并将它们放在耳中。
问题是项目的源代码不是由我完成的,而且我不确定应该在哪里解决这个问题。
答案 0 :(得分:0)
我会说你正朝着正确的方向前进。将您的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 highlights和ee6 highlights