我有一个Eclipse JSF示例,其中ExampleController类找不到Bundle.properties文件。这是用于创建JSF项目的动态Web项目快照,
这是项目文件结构的快照。您可以在properties文件夹中看到bundles文件,
这是类代码的快照。注意getBundle方法中的文件名,
@ManagedBean(name = "exampleController")
@RequestScoped
public class ExampleController {
private String exampleProperty;
* Creates a new instance of ExampleController
*/
public ExampleController() {
exampleProperty = "Used to instantiate the bean.";
FacesMessage facesMsg = new FacesMessage(FacesMessage.SEVERITY_INFO,
ResourceBundle.getBundle("WebContent/properties/Bundle.properties").getString("ExampleMessage"), null);
FacesContext.getCurrentInstance().addMessage(null, facesMsg);
}
最后,这是我在tomcat服务器上运行代码时错误的快照,
我尝试了几种文件名组合,但是在服务器运行时继续出现找不到文件的错误。我想念什么?
最好的祝福,
史蒂夫·曼斯菲尔德
最佳答案
尝试玩这条路。您路径中的“ WebContent”似乎不正确。
通常,资源路径是相对于WEB-INF或当前类文件位置来解析的。
您也可以尝试将属性目录放在多个位置,以查看是否在其中之一中找到了它。 :)
另外,如果您可以从“物理上”(如果不是从这些文件中)真正了解构建项目的实际运行位置,则可能会发现属性文件未与其他文件一起复制。 (您的Project设置中是否有Deployment Assembly?如果是,请签出。)
更新:如果只需要打开一个属性文件,请检查以下内容:
getResourceAsStream() is always returning null
...我不知道您的文件夹在某种程度上是否特殊。
多数情况下,当Tomcat在Eclipse中开始出现异常行为时,我发现Deployment Assembly已完成。 (发生在Mavenized项目中。Eclipse和m2eclipse似乎并不是最好的朋友。)
这种情况适合以下情形:“当部署到生产服务器时可以工作,而不能在Eclipse中运行则不能。”