我有一个eclipse JSF示例,其中ExampleController类找不到Bundle.properties文件。以下是用于创建JSF项目的动态Web项目快照
以下是项目文件结构的快照。您可以在属性文件夹中看到包文件
这是类代码的快照。注意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服务器运行代码时的错误快照,
我已经尝试了几种文件名组合,但在服务器运行时继续获取文件未找到的错误。我错过了什么?
最诚挚的问候, 史蒂夫曼斯菲尔德
答案 0 :(得分:0)
尝试使用路径。您路径中的“WebContent”似乎不对。 通常,资源路径相对于WEB-INF或当前类文件位置进行解析。 您还可以尝试将属性目录放在多个位置,以查看是否在其中一个位置拾取了它。 :)
此外,如果您可以从“物理”(如果不是来自这些文件)实际运行构建的项目,那么您可能会发现属性文件不会与其他文件一起复制。 (您在项目设置中是否有部署程序集?如果有,请查看它。)
更新:如果您只需要打开属性文件,请检查以下内容: getResourceAsStream() is always returning null ...我不知道你的文件夹在某种程度上是否特殊。
大多数情况下,当Tomcat开始在Eclipse中表现得非常奇怪时,我发现部署程序集正在向上发展。 (发生在Mavenized项目中.Eclipse和m2eclipse似乎不是最好的朋友。)
这种情况符合“部署到生产服务器时工作,而不是从Eclipse中运行时”。