[英]How do I use a properties file with jax-rs?
我刚刚开始使用在Tomcat上运行的jax-rs来设置Web服务。 有没有一种方法可以将属性文件与我的Java项目捆绑在一起(在Eclipse中),以便我可以在运行时从中读取属性? 另外,如果可能的话,将其放置在最佳位置(以便无法通过url看到),WebContent,WEB-INF等在哪里?
谢谢。
几种选择:
选项1:可以将其放在类路径下(在Eclipse中将其放在源文件夹下),因此可以通过类加载器访问它: MyClass.class.getResourceAsStream("myproperties.properites")
请注意,MyClass也必须位于相同的源文件夹中(实际上有点复杂,它必须位于相同的类加载器层次结构中,但是同一文件夹中的任何类都可以完成此工作)
选项2:将其放在WEB-INF文件夹中。 这是首选方法,因为您不需要处理类路径。 您将需要一个ServletContext来访问它: javax.servlet.ServletContext.getResourceAsStream("WEB-INF/myproperties.properites")
在jax-rs中,您可以在任何已注册资源或提供程序中使用@Context批注获取ServletContext。
对于GlassFish 3.1用户,我可以同时使用Tarlog的两个选项,但必须使用文件的绝对路径。 对于选项1,我将文件放在NetBeans的Source Packages文件夹中,然后可以通过以下方式访问:
InputStream is = TestResource.class.getResourceAsStream("/test_model.js");
对于选项2,我将文件放在WEB-INF下并使用:
@Context ServletContext servletContext;
InputStream is = servletContext.getResourceAsStream("/WEB-INF/test_model.js");
没有前斜杠,结果为空。 HTH
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.