如何在 Java 代码中使用 Java Web 服务将 SOAP 1.1 转换为 Soap 1.2?

How to convert SOAP 1.1 to Soap 1.2 using Java Web Services in Java Code?

Java 中有 1 个迁移。

我得到了一个 .wsdl,在 cxf maven 插件中我刚刚创建了存根,实现了服务并将其提交给客户。

当客户尝试致电时

has thrown exception, unwinding now: org.apache.cxf.binding.soap.SoapFault: A SOAP 1.2 message is not valid when sent to a SOAP 1.1 only endpoint.

以下是Java代码:

界面

@HandlerChain(file = "/handler-chain.xml")
@WebService(targetNamespace = "http://tsb.eto.com/terp/ws/v2", name = "Terp-v2")
@XmlSeeAlso({com.eto.psi.tsb.schema.common.ObjectFactory.class, com.eto.psi.tsb.schema.offering.ObjectFactory.class, com.eto.psi.kil.system.message.ObjectFactory.class, com.eto.tsb.terp.ws.schema.ObjectFactory.class, com.eto.psi.tsb.schema.task.ObjectFactory.class, com.eto.psi.tsb.schema.servicecontract.ObjectFactory.class, com.eto.psi.tsb.schema.project.ObjectFactory.class, com.eto.tsb.tsb.ObjectFactory.class, com.eto.psi.tsb.schema.customer.ObjectFactory.class})
@SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)

实施:

@javax.jws.WebService(
                      serviceName = "TerpService",
                      portName = "soap",
                      targetNamespace = "http://tsb.eto.com/terp/ws/v2",
                      //wsdlLocation = "classpath:templates/terp-tone.wsdl",
                      endpointInterface = "com.eto.tsb.terp.ws.v2.TerpV2")

public class SoapImpl implements TerpV2 {

我应该对代码做哪些更改才能使其成为 1.2?

我对 Java 代码进行了以下更改,现在已修复。

@BindingType(javax.xml.ws.soap.SOAPBinding.SOAP12HTTP_BINDING)
public class SoapImpl implements TerpV2 {