2011-10-12 81 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);