调用不同版本的SOAP API(无代码重复)

时间:2018-10-21 22:56:53

标签: java web-services design-patterns soap jax-ws

我需要编写一个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版本引用正确的存根类/方法?

谢谢

1 个答案:

答案 0 :(得分:-1)

是否可以有一个像Client接口这样的接口以及像一个ClientV1和ClientV2这样的两种实现?