我正在用java编写一个简单的web服务,它应该读取一个xml文件并为结果生成一个字符串。然而,我不知道:
a) xml文件应该放在文件系统中的什么位置,以便web服务可以访问它?
b) 从服务到文件的相对方式是什么
c) 另外,我如何将xml文件添加到项目中,以便将其与web服务一起部署
我使用NetBeans作为IDE,使用maven作为构建系统。
通常我在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中添加对该工件的依赖项。
a)任何地方,只要您的进程有权访问该文件。
b) 相对路径取决于您正在使用的应用程序服务器。相对路径是相对于jvm的主路径。对于,tomcat是tomacat基,对于weblogic则是domain目录。我建议不要依赖于此,而是使用包含绝对路径的配置参数。
c) 将其放入WEB-INF(servletcontext路径)或WEB-INF/classes(您可以将其作为类路径资源进行访问)