我需要编写一个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 版本引用正确的存根类/方法?
谢谢
是否可以有一个像客户端接口这样的接口和两个像一个 ClientV1 和一个 ClientV2 这样的实现?