gpt4 book ai didi

java - 尝试定义模块时,Maven 无法将 EJB 识别为项目的依赖项

转载 作者:IT老高 更新时间:2023-10-28 21:00:26 26 4
gpt4 key购买 nike

今天我将本地 Glassfish 服务器升级到 3.1.1,为我公司将服务器升级到相同版本做准备。我正在尝试将我的 Web 服务项目转换为与新服务器配合使用,但遇到了障碍。

在我耳朵的 pom 文件中,我之前将 webapp 和 ejb 都列为依赖项。在 webapp 的 pom 中,我也将 ejb 列为依赖项。尝试将此配置部署到 Glassfish 3.1.1 时,我收到此错误:

Error occurred during deployment: Exception while deploying the app [ear] : Cannot resolve reference Local ejb-ref name=name,Local 3.x interface =interface,ejb-link=null,lookup=,mappedName=,jndi-name=,refType=Session because there are 2 ejbs in the application with interface interface. Some of the possible causes: 1. The EJB bean class was packaged in an ear lib library (or through any other library mechanism which makes the library visible to all component modules), this makes all the component modules include this bean class indirectly. 2. The EJB bean class was packaged in a component module which references the EJB, either directly or indirectly through Manifest, WEB-INF/lib. The EJB bean class should only be packaged in the declaring ejb module and not the referencing modules. The referencing modules should only include EJB interfaces.. Please see server.log fo .... msg.seeServerLog

基本上我相信这是在说因为我将 EJB 列为两个不同领域的依赖项,Glassfish 3.1.1 不知道要查看哪个依赖项。这在 2.1.1 中不是问题。因此,我删除了 ear 中的依赖项,因为它仍然是 ear 有效 pom 的一部分。

但是,现在当 ear 生成 application.xml 文件时,它会忽略文件中的所有 ejb 信息。我现在可以很好地部署应用程序,但是当我尝试运行任何东西时,我得到关于 ejbs 的 NameNotFoundExceptions。

我尝试使用标签手动将 ejb 模块添加到 ear pom,但是当我尝试构建项目时,我收到错误消息:

Artifact[ejb] is not a dependency of the project.

尽管事实上当我查看耳朵的有效 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>

有了这个,我可以在 ear pom 中保留 ejb 依赖,application.xml 生成正确,glassfish 3.1.1 不会因为认为有多个同名的 ejb 类而感到困惑。

编辑:这是 ejb 依赖项在 ear pom 中的样子

<dependency>
<groupId>com.groupId</groupId>
<artifactId>webservice-service-ejbs</artifactId>
<type>ejb</type>
</dependency>

感谢帮助我的人。

关于java - 尝试定义模块时,Maven 无法将 EJB 识别为项目的依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8189937/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com