2016-03-24 131 views
2

我正在使用JBoss EAP 6.4。我有一個包含資源(需要通過我的應用程序配置文件),並具有以下文件結構的模塊文件夾:JBoss:在Module Path中包含子目錄

modules 
    | 
    |---resources 
      | 
      |---main 
       | 
       |---templates 
       |  |---template1.xml 
       |  |---template2.xml 
       | 
       |---axis2.xml 
       |---hibernate.cfg.xml 
       |---module.xml 

module.xml文件看起來像這樣:

<?xml version="1.0" encoding="UTF-8"?> 
<module xmlns="urn:jboss:module:1.1" name="resources"> 
    <resources> 
     <resource-root path="."/> 
     <resource-root path="./templates"/> 
    </resources> 
</module> 

我也有一個jboss-deployment-structure.xml文件:

<?xml version="1.0" encoding="UTF-8"?> 
<jboss-deployment-structure> 
    <deployment> 
     <dependencies> 
      <module name="resources" /> 
     </dependencies> 
    </deployment> 
</jboss-deployment-structure> 

我把模塊文件夾放在JBOSS_MODULEPATH。該應用程序可以找到modules/resources/main中的XML文件,如axis2.xmlhibernate.cfg.xml。但是,它無法找到子目錄templates(如template1.xml)中的文件。

有什麼建議嗎?

+0

我嘗試一個類似的配置,遇到同樣的問題,你正在描述。我的猜測是JBoss類加載器不會遍歷這些自定義模塊中的子路徑。如果它可以工作,我很想知道如何。 –

回答

0

我找到了解決方法。當啓動JBoss服務器我用下面的啓動參數:

-Dresource.path=/path/to/modules/resources/main 

所以resource.path停留作爲環境屬性,我可以以這種方式訪問​​在模板文件夾中的文件:

File f = new File(System.getProperty("resource.path") + "/templates/template1.xml"); 
+0

我可能也需要使用這樣的方法。應該指出的是,這種「解決方法」完全放棄了JBoss模塊功能,只是通過路徑引用文件資源。 –