0

我们正在从 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 类进行路由,使得这种解决方案非常麻烦和不优雅,并且将需要比我希望我必须做的更多的改变。

我将尝试澄清任何似乎不清楚的事情。提前致谢。

4

1 回答 1

2

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

于 2013-06-03T20:02:10.687 回答