我的'src / main / recources'文件夹中有不同的XML文件,我想从我的网络应用程序中读取它们。
File f = new File("file1.xml");
f.getAbsolutePath();
代码在WebService中调用,当我查看Tomcat-server-output时,会打印出'C:\ Users \ Administrator'。我目前的解决方案是将'file1.xml'文档放在WAR之外的'C:\' - 文件夹中,但这样我的WAR不可转让。
我也试过
<bean name="webService">
<property name="document">
<value>classpath:file1.xml</value>
</property>
</bean>
但是只打印出“classpath:file.xml”而不解析它。
此致 皮特
答案 0 :(得分:5)
如果您使用的是标准的maven2 war包装,则会将file1.xml复制到warfile中的WEB-INF / classes目录中。
您可以通过类路径访问此文件。
URL resourceUrl = URL.class.getResource("/WEB-INF/classes/file1.xml");
File resourceFile = new File(resourceUrl.toURI());
答案 1 :(得分:0)
如果您将文件放在WEB-INF(或WEB-INF本身)下的目录中,那么您可以使用ServletContext
的{{1}}方法读取它:
getResourceAsStream
答案 2 :(得分:0)
您可以将路径信息放在路径/ WEB-INF / classes中的属性文件中,并在运行时在应用程序中加载此信息。
要使此路径属性具有不同的值,您可以使用maven配置文件或任何其他构建工具的选项 - 以便不同的环境导致WAR文件具有适合该环境的路径的正确属性值。