在 jBoss 7.1 中管理 jar 文件的依赖关系
Posted
技术标签:
【中文标题】在 jBoss 7.1 中管理 jar 文件的依赖关系【英文标题】:Manage dependencies of jar-files in jBoss 7.1 【发布时间】:2014-07-16 06:52:55 【问题描述】:我从 jboss 开始,已经遇到了麻烦。
我的项目有下一个结构:
根 pom.xml - 核心模块 - ddbac 模块 - web 模块 - 包括 core.jar 和 ddbac.jar -ear 模块 - 包括 web.war
每个模块还包含一个 pom.xml。所有依赖项都在根 pom.xml 中声明。 当我在 ear 模块中执行 `mvn clean install` 时,我得到了包含 web.war 的 ear 文件。这个 web.war 包含 core.jar 和 ddbac.jar。
之后,我将此 ear 文件部署到 jBoss 7.1.1 中——它可以工作。但是当我开始测试它时——做一些动作——我遇到了异常:
引起:java.lang.ClassNotFoundException: org.springframework.beans.BeansException 来自本地模块加载器@5a0deddc 的 [Module "org.apache.cxf:main"(根:/home/roman/jboss-as-7.1.1.决赛/模块)] 在 org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:190) 在 org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:468) 在 org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:456) 在 org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398) 在 org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:120) ... 99 更多所以问题是:如何正确定义依赖关系,来自 ddbac 模块的代码可以“看到”web.war 中的库?
【问题讨论】:
你用的是spring吗?当 CXF 在您的应用程序中检测到 Spring .... 可能 id 决定使用 CXF+Spring 实现而不是单独使用 CXF。 community.jboss.org/thread/194685 是的,我正在使用 Spring,但问题已经解决(请参阅已接受的答案)。感谢您的提示:) 【参考方案1】:您可以使用描述符来指定您的依赖项。以下方法之一可能对您有用。
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>
【讨论】:
是的,解决方案:将 core 和 ddbac 模块作为模块添加到 ear 文件中:ear pom.xml 和 jboss-deployment-structure.xml 中,这样它们就可以使用共享库了。以上是关于在 jBoss 7.1 中管理 jar 文件的依赖关系的主要内容,如果未能解决你的问题,请参考以下文章
JBOSS AS 7.1 JBAS014775:新的缺失/不满足的依赖项:
在 Jboss 7.1 上部署 datasource.xml