2011-10-12 23 views
6

我想關閉JAXB綁定消息的模式驗證。我正在處理客戶端CXF代碼(WSDL第一代)。我嘗試過使用CXF 2.2.12:如何關閉客戶端的模式驗證

<jaxws:client name="{http://apache.org/hello_world_soap_http}SoapPort" 
    createdFromAPI="true"> 
    <jaxws:properties> 
     <entry key="schema-validation-enabled" value="true" /> 
    </jaxws:properties> 
</jaxws:client> 

沒有成功(請參閱參考文獻CXF FAQ)。我很難找到設置此屬性的編程方式。我還探索了短路CXF和訪問解析器,unmarshaller等。

感謝您的幫助。

+0

對於CXF 3我已經使用此屬性:

回答

5

要關閉模式驗證,您應該將schema-validation-enabled屬性設置爲false

根據您提供的文件(CXF FAQ)。

要啓用模式驗證(所有請求和響應將針對架構驗證)設置

<entry key="schema-validation-enabled" value="true" /> 

要禁用模式驗證(沒有任何要求,也沒有迴應將會對架構進行驗證)什麼也不做的原因是該默認的行爲或設置

<entry key="schema-validation-enabled" value="false" /> 
1

還是從代碼如下:

Client client = ClientProxy.getClient(XYZSOAPEndPoint); 
    HTTPConduit http = (HTTPConduit) client.getConduit(); 
    HTTPClientPolicy policy = new HTTPClientPolicy(); 
    policy.setAllowChunking(false); 
    http.setClient(policy); 
    ((BindingProvider)XYZSOAPEndPoint).getRequestContext().put("schema-validation-enabled",true);