Web Services 如何将jax-ws更改为jax-rs而不使客户端感知更改

cvxl0en2  于 2022-11-15  发布在  其他
关注(0)|答案(1)|浏览(143)

有一个由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调用。
这可能吗?

dtcbnfnu

dtcbnfnu1#

我通过将soap层从应用程序中分离出来解决了这个问题,原因有二:第一,同时使用了Jax-rs and Jax-ws端点;第二,技术债务;由于将SOAP与应用程序分离,因此可以顺利地迁移到JDK-11;第三,由于将SOAP与应用程序分离,因此除了改变JAX-WS端点之外,它与JAX-WS客户端无关。

相关问题