如果 beans.xml 文件包含修饰符或拦截器,那么必须使用有效模式才能实现正确的实例化。beans.xml 文件中的名称空间和模式位置必须与适用 CDI 版本的规范匹配。
该规则扫描 beans.xml 文件,查看 中提供的 xmlns
属性匹配 上的相应模式位置
schemaLocation 属性。
以下示例显示了 CDI 1.0 规范的有效 beans.xml 文件。
<beans xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/beans_1_0.xsd">
</beans>
以下示例显示了 CDI 1.2 规范的有效 beans.xml 文件。
<beans xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/beans_1_1.xsd"
bean-discovery-mode="all" version="1.1">
</beans>
如果未提供名称空间,那么规则不会标记 beans.xml 文件。
该规则的自动修复功能会使用与指定的............. schemaLocation. 将定制配置复制到应用程序构建文件以启用修订自动化。
如果您考虑使用 Java EE 7 随附的 CDI 1.2,请参阅 Contexts and Dependency Injection 1.2 behavior changes。