有一个由JAX-WS配置和开发的应用程序;这段代码如下:
@WebService(targetNamespace = "http://webservice.bulk.test.net/", serviceName = "BulkService")
@BindingType(value = SOAPBinding.SOAP12HTTP_BINDING)
@XmlSeeAlso({
ObjectFactory.class
})
public class Bulk {
@WebMethod
@RequestWrapper(localName = "getProvinces", targetNamespace = "http://webservice.bulk.test.net/", className = "test.GetProvinces")
@ResponseWrapper(localName = "getProvincesResponse", targetNamespace = "http://webservice.bulk.test.net/", className = "test.GetProvincesResponse")
@Action(input = "http://webservice.bulk.test.net/Bulk/getProvincesRequest", output = "http://webservice.bulk.test.net/Bulk/getProvincesResponse")
public void getProvinces(
@WebParam(name = "username", targetNamespace = "") @XmlElement(nillable = false, required = true)
String username,
@WebParam(name = "password", targetNamespace = "") @XmlElement(nillable = false, required = true)
String password,
...) {
}
根据此Web服务,许多客户端(jax-ws客户端)正在使用。
我想把jax-ws改成jax-rs,而不改变客户端,另一方面,客户端对这些变化没有感觉,像以前一样做api调用。
这可能吗?
1条答案
按热度按时间dtcbnfnu1#
我通过将soap层从应用程序中分离出来解决了这个问题,原因有二:第一,同时使用了
Jax-rs and Jax-ws
端点;第二,技术债务;由于将SOAP与应用程序分离,因此可以顺利地迁移到JDK-11
;第三,由于将SOAP与应用程序分离,因此除了改变JAX-WS端点之外,它与JAX-WS客户端无关。