2016-12-05 74 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