我有一个使用soap 1.1开发的Web服务。在使用此Web服务的客户中,有人需要使用soap 1.2。我考虑过进行必要的更改,但在这种情况下,我将打破仍在使用soap 1.1的其他客户的工作。 我的问题是:是否可以在同一个应用程序中共存soap 1.1和soap 1.2,或者必须部署两个应用程序。
答案 0 :(得分:3)
经过一些研究后,我发现可以在同一个应用程序中部署soap 1.1和soap 1.2。事实上,使用jax-ws实现只需正确配置sun-jaxws.xml
文件和端点类。
<endpoints xmlns="http://java.sun.com/xml/ns/jax-ws/ri/runtime"
version="2.0">
<endpoint name="Service11" implementation="mypackage.Service11Impl"
url-pattern="/Service/11" enable-mtom="true" wsdl="/wsdl/service.wsdl" />
<endpoint name="Service12" implementation="mypackage.Service12Impl"
url-pattern="/Service/12"
binding="http://java.sun.com/xml/ns/jaxws/2003/05/soap/bindings/HTTP/"
enable-mtom="true" wsdl="/wsdl/service.wsdl" />
@BindingType(value = javax.xml.ws.soap.SOAPBinding.SOAP11HTTP_MTOM_BINDING)
@WebService(...)
public class Service11Impl extends ParentService {
}
@BindingType(value = javax.xml.ws.soap.SOAPBinding.SOAP12HTTP_MTOM_BINDING)
@WebService(...)
public class Service112mpl extends ParentService {
}