2017-08-13 88 views
5

在域模式下,我可以使用屬性文件作爲模塊,但問題是如果文件中有任何修改,那麼我需要爲所有從站執行此操作該域名。 我想集中這個文件,以便在一個點上我可以改變,它會反映在所有的奴隸。在域模式下在從站之間共享屬性文件Wildfly10

我知道在domain.xml中我們可以配置全局級別的系統屬性,但我有大約25個屬性文件。

那麼有沒有一種方法來集中文件?

myjar.jar 
-->package 
    --> class 
-->properties 
    -->xml files 

myjar.jar是存檔jar文件 來獲取XML文件

URL url = Thread.currentThread().getContextClassLoader().getResource("./properties"); 

File queryFolder = new File(url.getFile()); 

for (File fileName : queryFolder.listFiles()) // null pointer exception 
{ 
    if (fileName.getName().toUpperCase().endsWith("XML")) 
    { 
      saxParser.parse(fileName, this); 
    } 
} 

這是行不通的。

試過這種

How do I list the files inside a JAR file?

,面向以下鏈接給出了同樣的問題

JBoss wildfly 8.x Provider "vfs" not installed when using java nio Paths

URL w_url = mmyClass.class.getProtectionDomain().getCodeSource().getLocation(); 
      JarEntry w_ze = null; 
      LOGGER.info("Jar******************" + w_url.toString()); 
      if (w_url.toString().endsWith(".jar")) 
      { 
       try (JarInputStream jar = new JarInputStream(w_url.openStream())) 
       { 
        while ((w_ze = jar.getNextJarEntry()) != null) 
        { 
         LOGGER.info("Name *******" + w_ze.getName()); 
        } 
       } 
       catch(Exception e) 
       { 

       } 
      } 
+0

您可以使用--properties參數在啓動服務器實例時加載屬性文件。 – Abhijit

+0

您是否可以不將屬性文件放入您的部署中? –

回答

1

添加的屬性war文件文件夾裏面進賬分解的文件夾路徑使用下面的代碼在戰爭文件的servlet中。

config.getServletContext().getRealPath("/"); 

這給出了文件夾的vfs路徑。

並配置了相同的

System.setProperty("REALPATH", config.getServletContext().getRealPath("/")); 

並用於在JAR文件中的相同。