java - 管理 jBoss 7.1 中 jar 文件的依赖关系

标签 java spring maven jboss7.x ear

我刚开始使用 jboss,但已经遇到了麻烦。

我的项目具有以下结构:

root pom.xml
 - core module
 - ddbac module
 - web module - includes core.jar and ddbac.jar
 -ear module - includes web.war

每个模块还包含一个pom.xml。所有依赖项都在根 pom.xml 中声明。 当我在ear模块内执行“mvn clean install”时,我得到了包含web.war的ear文件。此 web.war 包含 core.jar 和 ddbac.jar。

之后,我将此ear文件部署到jBoss 7.1.1中 - 它可以工作。但是当我开始测试它时 - 执行一些操作 - 我遇到异常:

Caused by: java.lang.ClassNotFoundException: org.springframework.beans.BeansException from [Module "org.apache.cxf:main" from local module loader @5a0deddc (roots: /home/roman/jboss-as-7.1.1.Final/modules)]
    at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:190)
    at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:468)
    at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:456)
    at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398)
    at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:120)
    ... 99 more

所以问题是:如何正确定义依赖项,使 ddbac 模块中的代码可以“看到”web.war 中的库?

最佳答案

您可以使用描述符来指定您的依赖项。以下方法之一可能对您有用。

application.xml。将您的库指定为应用程序内的模块。将 application.xml 放入 ear-root/META-INF/ 并描述您的项目。您必须指定类似的内容:

<application>
    <module>
        <web>
             <web-uri>web.war</web-uri>
             <context-root>web</context-root>
        </web>
    </module>   
    <module>
        <java>web/WEB-INF/lib/ddbac.jar</java>
    </module>
</application>

或者

jboss-app.xml。它是 JBOSS 特定的配置文件,也应该位于 META-INF/ 中。

<!DOCTYPE jboss-app PUBLIC "-//JBoss//DTD J2EE Application 5.0//EN"
  "http://www.jboss.org/j2ee/dtd/jboss-app_5_0.dtd" >
<jboss-app>
    <library-directory>web/WEB-INF/lib</library-directory>
</jboss-app>

关于java - 管理 jBoss 7.1 中 jar 文件的依赖关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23888072/

相关文章:

java - RxJava BehaviorSubject 没有发出最后一项?

java - Kafka Streams - 处理超时

java - 从基类请求主体 DTO 获取派生 DTO

maven - 特定存储库的 Nexus 访问权限

java - 如何使用 Spring Boot 在运行时创建指向系统中 REST 端点的 URL?

java - 我无法打印二维数组中的最后一列

java - 如何在 Java servlet 方法 init() 中获取本地主机和端口?

java - Spring MVC : how to get a handler method for a request

java - Eclipse Maven 工作区解析看不到生成的类

java - 从 WAR 文件中打包的类路径加载 PNG 文件