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");
没有任何效果。任何建议都会有所帮助。
答案 0 :(得分:0)
你可以尝试:
getServletContext().getResourceAsStream("configuration/config.xml");
答案 1 :(得分:0)
.getResourceAsStream()
仅适用于类路径。
没有实用的方法可以直接从普通的旧java类访问/WEB-INF
或其中的内容,如果可以的话,这将是一个安全漏洞。
.getServletContext().getResourceAsStream("/WEB-INF/configuration/config.xml");
应该有效,但这是一个非最佳解决方案,因为这只会在公开该方法的范围内提供。
您可以将文件放在类路径上,也可以通过URL
(WEB-INF
外部