Java MDB EJB Project maven依赖Web Project

Java MDB EJB Project maven depends on Web Project

我有一个现有的网络项目。现在我收到了添加 MDB EJB 项目的要求,我也照做了。 EJB项目maven依赖web项目

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

我访问了我的网站 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 项目。请帮忙!!!

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

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

总而言之,我宁愿推荐编辑 web 项目并使用两个第一个解决方案中的一个,但如果你真的不能,那么第三个解决方案应该可行。