CXF 2.2.12: How to turn off schema validation on the client side
I would like to turn off schema validation for JAXB-bound messages. 开发者_如何学JAVAI am dealing with the client-side CXF code (WSDL first generation). I have tried using
<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>
Without success (see reference CXF FAQ ). I've had difficulty finding a programmatic way of settings this property. I've also explored short-circuiting CXF and accessing the parser, unmarshaller, etc.
Thanks for your help.
To turn off the schema validation you should set the schema-validation-enabled
property to false
.
According to documentation referred by you (CXF FAQ).
To enable schema validation (all requests and responses will be validated against schema) set
<entry key="schema-validation-enabled" value="true" />
To disable schema validation (none of the requests nor responses will be validated against schema) do nothing cause it is the default behavior or set
<entry key="schema-validation-enabled" value="false" />
Or from the code as follows:
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);
@SchemaValidation(type = SchemaValidation.SchemaValidationType.NONE)
put this annotation to your endpoint implementation class
@SchemaValidation(type = SchemaValidation.SchemaValidationType.NONE)
public EndpointImpl endpoint(Bus bus, DirectConnectService accountServiceEndpoint) {
}
put this validation in your endpoint configuration class
精彩评论