非正统:RPC /编码的客户端和服务器

时间:2019-07-01 20:16:11

标签: spring transform rpc interceptor soap-rpc-encoded

所以我认为这可能是一个奇怪的问题,我并不希望得到如此多的答复,但我正在伸出援助之手,希望有人在某个地方提出解决方案,使他们也不得不面对

许多个月前,我们为客户开发了Web服务插件(它们充当服务器),并为自己设计了一个客户端,使用rpc /编码协议对其进行调用。升级到Java 11意味着我们不再负担javax弃用的部分奢侈品,相反,我们现在遇到了问题。

我们有成千上万的客户,而且由于我们不是SaaS,试图让他们全部进行及时升级只是不可行,因此我们需要提出一些解决方案,在此情况下我们仍然可以呼叫旧客户和新客户(获取最新版本插件的用户)而不会破坏任何内容。

这意味着我们需要能够使用rpc /编码的消息,并且为了不必在我们这边打开一整盒蠕虫,也必须能够生成它们。

@SOAPBinding(style = Style.RPC, use = Use.ENCODED)
@WebService(endpointInterface = "com.example.rpc.ws.RpcService", targetNamespace = "http://www.example.com/rpcService")
public interface RpcService {

    @WebMethod
    String echo(String echoString);
}

以下是我们在服务器(插件)端进行的递减设置的示例,以及需要进行处理的事情。

例如,如果我们可以使用Spring替换所有旧的Web配置,并在将其发送到客户端时使用一些拦截器将标准rpc/literal转换为rpc/encoded,那将是理想的选择;并且在服务器(插件)端,反之亦然。

不幸的是,用rpc/encoded协议编写任何内容似乎都太可怕了,甚至无法查看。我缺少一种简单的转换方法吗?曾经有一个时代的图书馆可以做到这一点吗?我已经找到了rpc/encodedrpc/literal的变压器,但是反之亦然。

有人可以提供帮助吗? :)

0 个答案:

没有答案