Web服务器属性加载

时间:2013-06-03 19:56:14

标签: java tomcat properties websphere

我们正在从Websphere服务器迁移到Tomcat服务器,并且在使先前的属性文件工作时遇到一些问题。 现在,属性文件存储在WEB-INF/properties/example.properties下 servlet和java类位于src/com/java/Example.java

使用以下内容引用了Websphere下的属性文件:

ResourceBundle props = ResourceBundle.getBundle("properties.example", Locale.getDefault());

这不适用于Tomcat。它们是从常规java类引用的,而不是从servlet引用的,所以我不能直接使用get getServletContext()。到目前为止,我能够实现这一目标的唯一方法是使用:

InputStream props = getServletContext().getResourceAsStream("/WEB-INF/properties/example.properties")

然后我可以从servlet将它传递给java类的构造函数并使用this.prop = prop;引用它。问题是,我有许多属性文件,它们都通过各种java类路由,使得这种类型的解决方案真的非常麻烦和不优雅,并且需要比我希望的更多变化。

我会试着澄清一些似乎不清楚的事情。提前谢谢。

1 个答案:

答案 0 :(得分:2)

ResourceBundle从类路径加载资源,而不是从webcontent加载资源。该文件需要进入/WEB-INF/classes/properties/example.properties才能出现在类路径中并以这种方式访问​​。它在Websphere中的工作可能只是该服务器的许多奇怪(非标准)功能之一。