今天,我将本地Glassfish服务器升级到3.1.1,以准备将公司的服务器升级到相同版本。我正在尝试将我的Web服务项目转换为与新服务器兼容,并且遇到了障碍。
在我耳朵的pom文件中,我以前将webapp和ejb都列为依赖项。在webapp的pom中,我也将ejb列为依赖项。尝试将此配置部署到Glassfish
3.1.1时,出现以下错误:
部署期间发生错误:部署应用程序时发生异常[ear]:无法解析参考Local ejb-ref name = name,Local 3.x
interface = interface,ejb-link = null,lookup =,mappedName =,jndi-name =,
refType = Session,因为在具有接口interface的应用程序中有2个ejb。一些可能的原因:1. EJB bean类被打包在ear
lib库中(或通过任何其他使该库对所有组件模块可见的库机制),这使所有组件模块间接包含此bean类。2. EJB
bean类打包在直接或间接通过Manifest WEB-INF / lib引用EJB的组件模块中。EJB
bean类仅应包装在声明ejb模块中,而不应包装在引用模块中。引用模块应仅包括EJB接口。
本质上,我认为这是因为我将EJB列为两个不同区域中的依赖项,因此Glassfish
3.1.1不知道要查找哪个依赖项。在2.1.1中这不是问题。因此,我删除了对耳朵的依赖,因为它仍然是耳朵有效pom的一部分。
但是,现在当耳朵生成application.xml文件时,它会忽略该文件中的所有ejb信息。我现在可以很好地部署该应用程序,但是当我尝试运行任何程序时,都会收到有关ejbs的NameNotFoundExceptions。
我尝试使用标签手动将ejb模块添加到耳挂,但是当我尝试构建项目时,出现错误消息:
Artifact [ejb]不是项目的依赖项。
尽管事实上,当我查看耳朵的有效pom时,我可以看到ejb被列为依赖项。
如何在仍然符合Glassfish 3.1.1更严格的规则集的情况下正确生成application.xml文件?
如果您需要更多信息,请告诉我,谢谢您的帮助!
答案最终变得非常简单,我为此而踢了一下自己。在webapp的pom文件中,我只需要将范围行添加到ejb依赖项中:
<dependency>
<groupId>com.groupId</groupId>
<artifactId>webservice-service-ejbs</artifactId>
<version>${project.version}</version>
<type>ejb</type>
<scope>provided</scope>
</dependency>
这样,我就可以将ejb依赖项保留在耳朵pom中,正确生成application.xml,并且考虑到存在多个同名的ejb类,glassfish
3.1.1不会引起混淆。
编辑:这是ejb依赖关系在耳pom中的样子
<dependency>
<groupId>com.groupId</groupId>
<artifactId>webservice-service-ejbs</artifactId>
<type>ejb</type>
</dependency>
感谢那些帮助我的人。
问题内容: 我正在尝试建立一个多模块Maven项目,并且模块间的依存关系显然没有正确设置。 我有: 在父POM(其具有包装型POM),然后子目录和其限定具有相同名称的JAR POMS。 存储取决于Commons。 在主(主)目录中,我运行并看到: 为什么即使反应堆由于成功处理了其依赖关系树而明显看到了对“公共”的依赖关系,却还是失败了?它绝对不应该在网上找到,因为它就在那里… 存储的pom: 感谢
null 附注:Maven-Build是成功的。因此,Maven正在识别存储库中的包。
而不是常规的选项。 该模块有一个文件和自己的文件
我在IntellijIDEA中有一个项目是用Maven创建的。然后我在pom.xml文件中指定了一组依赖项和外部存储库。 如果我执行“mvn install”,那么项目在命令行上构建得很好。但是,当我打开IDE中的任何代码文件时,它会说Maven依赖项处理的所有类都无法识别--如果我从未将所需的JAR添加到构建路径中,这对于一个正常的项目来说是一样的。 我知道在我的Eclipse Maven项目(
我有一个多模块maven项目,包含三个模块、和 Core具有以下依赖项定义 我已经为所有三个模块添加了Java9定义,的如下所示: 但是,我不知道如何让的测试类能够在测试执行期间看到类。当尝试测试运行时,找不到类。 如果向的添加需要My.Project.TestUtils;的: 然后在编译时,我得到一个错误,即找不到模块(大概是因为它只是作为测试依赖项引入的)。 在Java9模块化的世界中,如何处
我试图通过从eclipse workspace项目导入现有maven项目来创建maven项目,但eclipse无法解决任何依赖项。每次创建项目、更新maven依赖项或清理项目时,依赖项会被下载,但它们不会从本地maven存储库中被引用。当我从命令行运行时生成构建 我已经筋疲力尽地尝试解决这个问题的所有修补程序了,比如启用索引、清理项目、Maven->update project 我的eclipse