应该在哪里放置beans.xml?

wob*_*ogs 25 java-ee-6 glassfish-3

我刚刚从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

Mik*_*unu 40

将beans.xml放在WEB-INF目录中就可以了,因为很可能bean都在WEB-INF类下.

beans.xml的正确位置取决于归档类型和bean类的位置.

在说明书中,这解释如下:

必须在Bean归档中部署已启用Bean的Bean类.

  • 如果库jar,EJB jar,应用程序客户机jar或rar存档在META-INF目录中有一个名为beans.xml的文件,则它是一个bean存档.
  • 如果战争的WEB-INF目录中有一个名为beans.xml的文件,则war的WEB-INF/classes目录是一个bean归档文件.
  • 如果JVM类路径中的目录在META-INF目录中有一个名为beans.xml的文件,则该目录是一个bean归档文件.