我的环境是一个使用Spring Boot的Maven项目。 我正在使用wsimport从WSDL生成JAX-WS代码。 当我接收到SOAP响应时,我想要禁用SOAP验证。 我正在使用JDK8默认实现的jax-WS。代码如下:
// (1) 现在构建WebService客户端
MyWS_Service service = new MyWS_Service(null, new QName("http://...", "MyWS"));
MyWS port = service.getMyWSSOAP();
BindingProvider bindingProvider = (BindingProvider) port;
//(2)禁用验证
bindingProvider.getRequestContext().put("set-jaxb-validation-event-handler", "false");
// set endpoint
bindingProvider.getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, "http//...endpointaddress");
//(3)执行请求
respObj = port.myRequest(myRequestObj);
我在谷歌上搜索,找到了一个选项可以禁用验证:
(3) bindingProvider.getRequestContext().put("set-jaxb-validation-event-handler", sc.getSocketFactory());
但似乎该选项不被jdk8的jax-WS默认实现接受,但它被apache cxf接受。那么,如何在jdk8的jax-ws默认实现中停用验证?是否有一种方法可以在我的项目中加载cxf实现,以便我使用上述选项来停用验证?是否有一种自定义xml验证的方法?