Мне нужно написать Java-клиент для вызова некоторых API-интерфейсов SOAP, предоставляемых приложением.
Клиент должен иметь возможность подключаться к другой версии одного и того же приложения, которая предоставляет разные версии 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 во время выполнения?
Спасибо