首页 > 解决方案 > 调用不同版本的 SOAP API(无代码重复)

问题描述

我需要编写一个 java 客户端来调用应用程序公开的一些 SOAP API。

客户端应该能够连接到同一应用程序的不同版本,该应用程序公开不同版本的 API 和不同的 WSDL。对于生成的存根类,我有不同的包,每个版本的 wsdl 都有一个。调用 API 的客户端代码在不同版本的 API 中是相同的。如何在不重复每个 api 版本的代码的情况下实现客户端逻辑?

例如,如果客户端逻辑是:

callStubMethodApiFoo()
callStubMethodApiBar()

我的解决方案是为 APIv1 提供两个客户端实现:

com.application.api.v1.stub.Client.callStubMethodApiFoo()
com.application.api.v1.stub.Client.callStubMethodApiBar()

一个用于 APIv2:

com.application.api.v2.stub.Client.callStubMethodApiFoo()
com.application.api.v2.stub.Client.callStubMethodApiBar()

是否有可能没有重复的代码在运行时为所需的 API 版本引用正确的存根类/方法?

谢谢

标签: javaweb-servicesdesign-patternssoapjax-ws

解决方案


是否有可能有一个像客户端接口这样的接口和像一个 ClientV1 和一个 ClientV2 这样的两个实现?


推荐阅读