jboss 7部署2个罐子:一个分享其他

时间:2014-11-30 10:59:31

标签: java jar jboss7.x pom.xml

我有2个maven项目ProjectA和ProjectB。 ProjectA中的pom.xml具有ProjectB的依赖性,并使用那里的类。 在mvn install之后,我将.jar文件复制到jboss7中的独立/部署中并运行./standalone.sh。 ClassNotFoundException异常,部署失败。

ProjectA的pom.xml `

<modelVersion>4.0.0</modelVersion>
<groupId>com.duracel</groupId>
<artifactId>projectA</artifactId>
<version>0.0.1-SNAPSHOT</version>

<dependencies>
    <dependency>
        <groupId>com.duracel</groupId>
        <artifactId>projectB</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    </dependency>
    <dependency>
        <groupId>javax.ejb</groupId>
        <artifactId>ejb-api</artifactId>
        <version>3.0</version>
    </dependency>
</dependencies>

`

ProjectB的pom.xml `

<modelVersion>4.0.0</modelVersion>
<groupId>com.duracel</groupId>
<artifactId>projectB</artifactId>
<version>0.0.1-SNAPSHOT</version>

`

两者都被<project>标记为

2 个答案:

答案 0 :(得分:1)

JBoss中部署的每个工件都有自己的类加载器。从你的问题来看,你不清楚你想做什么或jar文件里面是什么。在一般情况下,Web应用程序被部署为war或ear文件。两者都可以包含不同的jar文件并共享一个类加载器。如果项目b只包含一些直到类,则可以选择将其作为模块安装。有关模块的更多信息,请查看jboss modules

答案 1 :(得分:0)

你得到一个ClassNotFound,因为projectA找不到它实现的接口,它们位于另一个jar中。要解决此问题,请制作耳朵项目,将projectA放在耳朵的根部,然后将projectB放在耳朵的lib文件夹中。

正如hertog所说,你也可以将projectB声明为一个模块(它的行为就像一个共享库)