java - 在EAR中,在类路径上找不到 jar 库,java JBoss: WAR文件

  显示原文与译文双语对照的内容
126 3

我在部署带有捆绑 war 。jars 和配置文件的ear时遇到了一个问题 JBoss -eap 。 这是我的耳朵结构:


+app.ear 


 +lib 


 *.jar libraries that the war's use 


 +classes 


 *.properties and other configuration files 


 +META-INF 


 application.xml 


 jbos-app.xml 


 app.war 


 app2.war 


 appn.war 



我的jboss-app.xml 中有以下内容:


<jboss-app>


 <jmx-name>app.startup.JbossStartUpServer:service=JbossStartUpService</jmx-name>


</jboss-app> 



我的application.xml 如下所示:


<application id="app_id">


 <display-name>App>/display-name>


 <description>TheApp>/description>


<!-- 


 <module id="core">


 <java>lib/core.jar</java>


 </module>



 <module id="tag">


 <java>lib/tag.jar</java>


 </module>


--> 


 <module id="app">


 <web>


 <web-uri>app.war</web-uri>


 <context-root>/</context-root>


 </web>


 </module> 



 <module id="app2">


 <web>


 <web-uri>app2.war</web-uri>


 <context-root>/app2</context-root>


 </web>


 </module> 



 <module id="appn">


 <web>


 <web-uri>appn.war</web-uri>


 <context-root>/appn</context-root>


 </web>


 </module>



 <security-role id="secRole">


 <description>users</description>


 <role-name id="appRoleName">users</role-name>


 </security-role>



 <library-directory>lib</library-directory>



</application>



基本上,在部署ear时,我遇到一个问题,它的中一个战斗无法在 core.jar 文件( java.lang.NoClassDefFoundErro R ) 中找到类。 我认为这是因为这个实际上没有找到这个库,即使它在 lib 文件夹/路径中。 if前两个模块添加first库( core.jartag.jar ),突然all属性文件( 现在,它们位于 lib/classes 中,所以我希望它们都可以找到),classloader加载程序 picked 。 理想情况下,我想将类放在它自己的目录中,并将它分别添加到类路径中,但是现在我只是。

在war文件的。jboss-web.deployer 中的UseJBossWebLoader 文件以及上面的各种组合中,我已经尝试了一些其他的东西,比如在 jboss-service.xml 文件中将改成 true,而不是成功。 我不能从类路径( lib 文件夹) 中丢失 classes 目录,而且我的属性文件没有被抓取,或者无法从 jar 访问。 我认为一定有一些配置错误,而且我尝试了在JBoss部署和类加载方式上读取。

任何建议都会非常感激。

以下是我一直在查看的一些站点:
Raible设计JBoss加载类加载器逻辑

这些只是我查看过的几个网站。 这些问题可能来自项目的设置,因为这是一个大型的建立项目,( 到一定程度) 正在从 web logic部署迁移到 Jboss 。 因这里,如果有任何应该工作的事情,但是它可以能是一个代码/项目配置的问题。 不幸的是,我不在哪里可以知道它是一个JBoss相关的问题,还是一个问题的问题。

时间: 原作者:

100 3

application.xml 中的<library-directory> 标记是一个JavaEE5特性,我不认为 JBoss 4.3是完全 JavaEE5-compliant ( 它可以做 EJB3,是的,但它只是部分支持) 。

因此,你需要返回到显式声明的jar 文件:


<module>


 <java>lib/core.jar</java>


</module>



对于属性文件,需要将它们所在的目录添加为一个java模块,例如你的示例:


<module>


 <java>lib/classes</java>


</module>



原作者:
...