Wenn eine Datei beans.xml Decorators und Interceptors enthält, muss für eine ordnungsgemäße Instanziierung ein gültiges Schema verwendet werden. Der Namespace in der beans.xml Datei muss mit der Spezifikation für die anwendbare CDI Version übereinstimmen.
Diese Regel scannt beans.xml Dateien, um zu sehen, ob ein
gültiger Namespace in der Datei xmlns Attribut.
Das folgende Beispiel zeigt eine gültige Datei beans.xml für die CDI Version 1.0-Spezifikation.
<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>
Das folgende Beispiel zeigt eine gültige Datei beans.xml für CDI Version 1.2-Spezifikation.
<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>
Wenn ein Namespace angegeben ist, dieser aber mit keiner der beiden Spezifikationen übereinstimmt, löst der Server während der Verarbeitung der Datei beans.xml eine Ausnahme aus.c Sie können die Validierung inaktivieren, indem Sie die folgende JVM-Eigenschaft konfigurieren:
org.jboss.weld.xml.disableValidating=true
Wenn kein Namespace angegeben ist, markiert die Regel die Datei beans.xml nicht.
Wenn Sie beabsichtigen, die mit Java EE 7 bereitgestellte CDI Version 1.2 zu verwenden, finden Sie weitere Informationen unter Contexts and Dependency Injection 1.2 behavior changes.