Java MDB EJB Project maven依赖于Web Project

时间:2015-03-17 22:31:01

标签: java eclipse maven dependencies ejb

我有一个现有的网络项目。现在我需要添加一个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项目中的类

我真的不能这样做,因为我不允许编辑网络项目。请帮助!!!

1 个答案:

答案 0 :(得分:1)

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

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

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