如何从父war文件中读取xml文件?

时间:2014-05-19 21:09:09

标签: java xml file web-applications accessibility

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。 试过几个组合,如:

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

没有任何效果。任何建议都会有所帮助。

2 个答案:

答案 0 :(得分:0)

你可以尝试:

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

答案 1 :(得分:0)

代码中的

.getResourceAsStream()仅适用于类路径。

没有实用的方法可以直接从普通的旧java类访问/WEB-INF或其中的内容,如果可以的话,这将是一个安全漏洞。

.getServletContext().getResourceAsStream("/WEB-INF/configuration/config.xml");应该有效,但这是一个非最佳解决方案,因为这只会在公开该方法的范围内提供。

您可以将文件放在类路径上,也可以通过URLWEB-INF外部

将其放在webapp可用的位置)