CXF 2.2.12:如何在客户端关闭模式验证

时间:2011-10-12 18:34:25

标签: java jaxb cxf

我想关闭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等。

感谢您的帮助。

4 个答案:

答案 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) {
  }

将此验证放入您的端点配置类