檢查 beans.xml 中的有效綱目

如果 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 檔案時,伺服器會擲出異常狀況。 您可以透過設定下列 JVM 內容來停用驗證:

		
	org.jboss.weld.xml.disableValidating=true

如果未提供名稱空間,則此規則不標示 beans.xml 檔案。

此規則的自動修正程式會使用適用於指定 schemaLocation的值來更新不相容的名稱空間。 將自訂配置複製到應用程式建置檔,以啟用修正程式自動化。

如果您考慮使用隨 Java EE 7 一起提供的 CDI 1.2,請參閱 Contexts and Dependency Injection 1.2 行為變更