在Eclipse中找不到文件

时间:2015-03-11 21:30:42

标签: java eclipse tomcat

我有一个eclipse JSF示例,其中ExampleController类找不到Bundle.properties文件。以下是用于创建JSF项目的动态Web项目快照

Dynamic Web Project

以下是项目文件结构的快照。您可以在属性文件夹中看到包文件

Project file structure

这是类代码的快照。注意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服务器运行代码时的错误快照,

Runtime Tomcat Server Error

我已经尝试了几种文件名组合,但在服务器运行时继续获取文件未找到的错误。我错过了什么?

最诚挚的问候, 史蒂夫曼斯菲尔德

1 个答案:

答案 0 :(得分:0)

尝试使用路径。您路径中的“WebContent”似乎不对。 通常,资源路径相对于WEB-INF或当前类文件位置进行解析。 您还可以尝试将属性目录放在多个位置,以查看是否在其中一个位置拾取了它。 :)

此外,如果您可以从“物理”(如果不是来自这些文件)实际运行构建的项目,那么您可能会发现属性文件不会与其他文件一起复制。 (您在项目设置中是否有部署程序集?如果有,请查看它。)

更新:如果您只需要打开属性文件,请检查以下内容: getResourceAsStream() is always returning null ...我不知道你的文件夹在某种程度上是否特殊。

大多数情况下,当Tomcat开始在Eclipse中表现得非常奇怪时,我发现部署程序集正在向上发展。 (发生在Mavenized项目中.Eclipse和m2eclipse似乎不是最好的朋友。)
这种情况符合“部署到生产服务器时工作,而不是从Eclipse中运行时”。