2016-02-04 36 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");