我刚刚从7.0升级到NetBeans 7.1。在打开一个JSF托管bean时,它“帮助”告诉我它找不到我的beans.xml文件,所以我喜欢它为我创建。我知道我在WEB-INF下有一个beans.xml文件,但我还是说是的,看看发生了什么。我为META-INF创建了一个新的beans.xml。
认为我犯了一个错误,我删除了WEB-INF下的文件只是为了让我的应用程序在启动时失败。将beans.xml放回WEB-INF修复了这个问题。此页面似乎认为这两个位置都有效:http://seamframework.org/Documentation/WhatIsBeansxmlAndWhyDoINeedIt
所以,问题是beans.xml应该在WEB-INF或META-INF中使用哪个文件夹?
我正在运行GlassFish 3.1.1和Java 7
答案 0 :(得分:39)
在您的情况下将beans.xml放置到WEB-INF目录中是很好的,因为很可能bean是在WEB-INF类下。
beans.xml的正确位置取决于存档类型和bean类的位置。
在说明书中,这解释如下:
必须在bean归档中部署已启用Bean的Bean类。
- 库jar,EJB jar,应用程序客户机jar或rar存档是一个bean存档,如果它在META-INF目录中有一个名为beans.xml的文件。
- 如果在战争的WEB-INF目录中有一个名为beans.xml的文件,那么war的WEB-INF / classes目录就是一个bean存档。
- 如果JVM类路径中的目录在META-INF目录中有一个名为beans.xml的文件,则该目录是一个bean归档文件。