我正在java上编写一个简单的Web服务,它应该读取一个xml文件并生成一个结果字符串。然而,我对此感到茫然:
a)xml文件应该放在文件系统中,以便Web服务可以访问?
b)从服务
到文件的相对方式是什么c)交替使用,如何将xml文件添加到项目中,以便与Web服务一起部署
我使用NetBeans作为IDE,使用maven作为构建系统。
答案 0 :(得分:1)
通常我在我的Web应用程序中提供资源包(.jar)。如果在运行时不应该修改该文件,这应该是访问它的最佳方式。这将是你的问题中的c)。在那里,您可以使用以下方式访问该文件:
ClassLoader cl = this.getClass().getClassLoader();
InputStream is = cl.getResourceAsStream("resourceName");
"resourceName"
将是jar文件中的路径。我使用Maven打包,src/main/webapp/WEB-INF/classes
中的所有内容都将在您的类路径中提供,并且可以使用getResourceAsStream
加载。
使用maven的另一种方法是创建一个新模块并将所有必需的资源放在src/main/resources
中,然后在webapp pom中为此工件添加依赖项。
答案 1 :(得分:0)
a)在任何地方,只要您的进程有权访问该文件。
b)相对路径取决于您使用的App服务器。相对路径是相对于jvm的家。对于 tomcat 是 tomacat-base ,对于 weblogic 是域目录。我建议不要依赖于此,但是包含绝对路径的配置参数。
c)将它放在WEB-INF(servletcontext路径)或WEB-INF / classes中(你可以将它作为类路径资源访问)