gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 06:46:36 24 4
gpt4 key购买 nike

我刚开始使用 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com