繁体   English   中英

如何在jax-rs中使用属性文件?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM