我的环境是一个带有spring boot的maven项目。我正在使用 wsimport 从 WSDL 生成 JAX-WS 代码。当我收到肥皂响应时,我想禁用肥皂验证。我正在使用 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 验证?