gpt4 book ai didi

Java MDB EJB项目maven依赖Web项目

转载 作者:行者123 更新时间:2023-12-01 11:46:10 25 4
gpt4 key购买 nike

我有一个现有的网络项目。现在我收到添加 MDB EJB 项目的要求并执行了相同的操作。 EJB项目maven依赖web项目

所以到目前为止一切都很好。当我开始在我的 MDB 中使用 Web 项目中的一些类时,它编译得很好,一切看起来都很棒,但是在运行时出现 NoClassDefFoundError 错误

我转到我的 web pom.xml 并将其添加到配置部分

 <plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.1.1</version>
<configuration>
<attachClasses>true</attachClasses>

在我的 EJB POM 中

<dependency>
<groupId>my.group</groupId>
<artifactId>my-web-project-name</artifactId>
<version>${project.version}</version>
<classifier>classes</classifier>
</dependency>

如何让我的 EJB 找到 Web 项目中的类

我真的无法以其他方式做到这一点,因为我不允许编辑网络项目。请帮忙!!!

最佳答案

基本上默认情况下所有服务器都使用模块类加载器,并且 Web 模块可能依赖于 ejb,但不能以其他方式依赖。绝对不推荐。您有以下选择:

  • 如果您使用的是 Java EE 6 兼容服务器,您可以将 EJB 直接添加到 Web 模块(需要在 Web 项目中进行更改)
  • 从Web项目中提取公共(public)类并创建java实用程序项目。将该项目添加到 EAR 中,并使 web 和 ejb 项目依赖于该项目,并且 web 依赖于 ejb(也需要在 web 中进行更改)
  • 为整个应用程序配置单个类加载器。如果您的服务器允许,这应该可以解决您的问题。

总而言之,我宁愿建议编辑 Web 项目并使用第一个解决方案中的两个,但如果您真的不能,那么第三个解决方案应该可以工作。

关于Java MDB EJB项目maven依赖Web项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29110946/

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