2016-02-04 154 views
0

我想加載我的Tomcat服務器上從xml文件中的一些參數。 let's說,多數民衆贊成的文件夾結構:路徑文件WEBAPPLICATION

Tomcat 
|-webapps 
    |-MyWebApp.war 
    |-MyWebApp //(Source files) 
     |-META-INF 
     |-WEB-INF 
     |-configFile.xml 

我試着像

File inputfile = new File("/MyWebApp/WEB-INF/configFile.xml"); 
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); 
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder(); 
Document doc = dBuilder.parse(inputfile); 

剛剛發表了filemissing exception幾種不同的方法......

所以,問題是:

如何在我的Java代碼中設置路徑來引用Tomcat上的文件?

回答

1

您應該避免在Web應用程序中使用文件。

這是要走的路:您需要獲得ServletContext(例如,在Servlet之內)。

然後使用

ServletContext context = ... 
InputStream in = context.getResourceAsStream("/WEB-INF/configFile.xml"); 

打開一個InputStream你的XML文件,並把它傳遞給DocumentBuilder

Document doc = dBuilder.parse(in); 
+0

我怎樣才能得到ServletContext的?我只是有一個簡單的REST服務類,它調用我的(服務)類來打開文件並獲得prams。 – JohnDizzle

+0

@JohnDizzle將上下文注入您的服務類,例如對於JAX-RS請參閱http://stackoverflow.com/questions/1814517/get-servletcontext-on-tomcat-from-jax-rs-jersey – wero

-1

試試這個

File inputfile = new File("/WEB-INF/configFile.xml"); 

OR

File inputfile = new File("../WEB-INF/configFile.xml");