2016-12-05 77 views
0

我想我的应用程序服务器从Jboss4中迁移到Wildfly 9.我的战争的结构班罐子不是Wildfly

myWar.war 
     - WEB-INF 
      -lib 
       -jar1 
       -jar2 

当我部署Wildfly这场战争的战争部署期间访问,类这些罐子内部不可访问(ClassNotFoundException)。

阅读更多关于Wildfly后,我才知道,类加载在Wildfly改变,依赖需要在文件中的JBoss部署-structure.xml或MANIFEST.MF在

明确提及,我有点困惑,并有2个问题 -

  1. 是指定在 JBoss的部署,structure.xml或MANIFEST.MF这种依赖关系(如内 战争的lib罐子里),需要它?
  2. 如果是,如何正确指定这个罐子的依赖关系?我试图通过他们的JAR名称/包提的依赖关系的JBoss部署-structure.xml等,但没有运气 名的某些方面(每次我得到缺少的依赖或模块未发现异常, 等)

我还必须在Wildfly的模块目录下创建一个模块吗?但是这些罐子是用我的构建脚本动态创建和打包在war文件中的,所以我不能将jar放在modules文件夹(如石英或mysql罐子)下,因为这些不是静态的。

请帮忙。

回答

3

不需要在MANIFEST.MF或jboss-deployment-structure.xml中声明战争lib文件夹内的jar文件。

这些文件用于声明对wildfly模块的依赖关系(例如jdbc驱动程序,cxf依赖关系等)。

你确定你的ClassNotFoundException来自包含在你的war的lib文件夹中的jar吗?你不需要做任何特殊的事情来从你的战争的lib文件夹中加载类。

0

Wildfly 9确实期望特定方式的结构化网络档案。从战争结构看,每件事看起来都很好。重新检查战争结构是否符合Widfly 9.正确的结构应该是这样的:

myWar.war 
---WEB-INF 
    ------- lib 
      ---- Jar 1 
      ---- Jar 2 
    -------- classes 
      ---- Your classeses here 
    -------- web.xml