我试图将我的应用程序服务器从JBOSS4迁移到Wildfly 9.我的战争结构是
myWar.war
- WEB-INF
-lib
-jar1
-jar2
当我在Wildfly中部署这场战争时,这些罐子内的类是无法访问的(ClassNotFoundException)。
阅读了有关Wildfly的更多信息后,我了解到在File JBoss-Deployment-structure.xml或subtest.mf
中,需要在wildfly中更改class Loading,并且需要明确提及依赖项。我有点困惑,有2个问题 -
- 是否需要在jboss-deployment structure.xml或subtest.mf(作为罐子中的罐子战争的lib)?
- 如果是,如何准确指定罐子的这种依赖性?我尝试了一些通过他们的罐子名称/软件包提及依赖的方法jboss-deployment structure.xml等中的名字,但没有运气(每当我缺少依赖关系或模块时,都找不到例外,等)
我还必须在Wildfly的模块目录下创建一个模块吗?但是这些罐子是用我的构建脚本在战争文件中动态创建和包装的,因此我无法将罐子放在模块文件夹下(例如Quartz或MySQL Jars),因为这些不是静态的。
请帮助。
在战争的lib文件夹中不需要在subtest.mf或jboss-deployment-structure.xml中声明。
这些文件用于声明对野生蝇模块的依赖性(例如JDBC驱动程序,CXF依赖项等)。
您确定您的classNotFoundException来自战争的LIB文件夹中包含的罐子吗?您不需要做任何特殊的事情来加载战争的LIB文件夹。
Wildfly 9确实期望特定的结构化Web-Archives。从战争结构来看,每件事都很好。请重新检查战争结构与widfly 9相符。正确的结构应像:
myWar.war
---WEB-INF
------- lib
---- Jar 1
---- Jar 2
-------- classes
---- Your classeses here
-------- web.xml