我有一个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中运行则不能。”

07-24 09:49
查看更多