2014-05-19 53 views
-1
MyProject.war 

| --- META-INF/ 
| --- WEB-INF/ 
    |--- classes/ (My compiles project classes) 
    | |--- com 
    |  |--- package 
    |   |--- MyActionClass.class 
    | |--- configuration 
    |  |--- config.xml 
    |--- lib/ 
     |--- MyProject.jar 
      |--- com 
       |--- package 
        |--- MyServiceClass.class 

我需要從MyServiceClass.class中讀取config.xml。 試過幾種組合,如:如何從父戰文件讀取xml文件?

MyServiceClass.class.getResourceAsStream("/configuration/config.xml"); 
MyServiceClass.class.getResourceAsStream("config.xml"); 
MyServiceClass.class.getResourceAsStream("classpath*:/configuration/config.xml"); 

毫無效果。任何建議都會有所幫助。

回答

0

.getResourceAsStream()從您的代碼只能在類路徑中。

沒有實用的方法來訪問/WEB-INF或直接從一個普通的舊java類訪問它,它會是一個安全漏洞,如果你可以。

.getServletContext().getResourceAsStream("/WEB-INF/configuration/config.xml");應該可以工作,但這是一個非最佳解決方案,因爲這隻能在公開該方法的範圍內使用。

要麼把你的文件放在classpath或把它在它是提供給web應用程序通過URL(外WEB-INF

+0

有沒有辦法讓我可以訪問這個XML文件? – user811433

0

你可以嘗試:

getServletContext().getResourceAsStream("configuration/config.xml"); 
+0

試過了。沒有爲我工作。 – user811433