为Java Web服务放置数据文件

时间:2011-06-04 17:05:49

标签: java netbeans maven

我正在java上编写一个简单的Web服务,它应该读取一个xml文件并生成一个结果字符串。然而,我对此感到茫然:

a)xml文件应该放在文件系统中,以便Web服务可以访问?

b)从服务

到文件的相对方式是什么

c)交替使用,如何将xml文件添加到项目中,以便与Web服务一起部署

我使用NetBeans作为IDE,使用maven作为构建系统。

2 个答案:

答案 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中(你可以将它作为类路径资源访问)