我想关闭JAXB绑定消息的模式验证。我正在处理客户端CXF代码(WSDL第一代)。我尝试过使用
<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 :(得分:6)
要关闭架构验证,您应将schema-validation-enabled
属性设置为false
。
根据您提到的文件(CXF FAQ)。
启用架构验证(所有请求和响应都将根据架构进行验证)set
<entry key="schema-validation-enabled" value="true" />
禁用架构验证(不会对架构验证任何请求和响应)不执行任何操作,因为它是默认行为或设置
<entry key="schema-validation-enabled" value="false" />
答案 1 :(得分: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);
答案 2 :(得分:0)
@SchemaValidation(type = SchemaValidation.SchemaValidationType.NONE)
将此注释放入您的端点实现类
答案 3 :(得分:0)
@SchemaValidation(type = SchemaValidation.SchemaValidationType.NONE)
public EndpointImpl endpoint(Bus bus, DirectConnectService accountServiceEndpoint) {
}
将此验证放入您的端点配置类