beans.xml に有効な名前空間があるかチェックする

beans.xml ファイルにデコレーターまたはインターセプターが含まれている場合は、適切なインスタンス化のために有効なスキーマを使用する必要があります。 ファイル内の名前空間は、beans.xmlと一致しなければなりません。 ファイルの名前空間は、該当するCDIバージョンの仕様と一致していなければなりません。

This rule scans beans.xml files to see if a valid namespace is provided on the xmlns 属性。

以下の例では、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 ファイルの処理時に例外をスローします。 以下の JVM プロパティーを設定することで、検証を無効にすることができます。

		
	org.jboss.weld.xml.disableValidating=true

名前空間が指定されていない場合、この規則は beans.xml ファイルにフラグを立てません。

Java EE 7 で提供されている CDI 1.2 を使用することを検討している場合は、『 Contexts and Dependency Injection 1.2 behavior changes』を参照してください。