Получение клиента Axis 1.1 для общения с сервисом Axis2 - PullRequest
4 голосов
/ 13 марта 2011

Возможно ли взаимодействие клиента Axis 1.1 с конечной точкой веб-службы Axis2? Насколько я понимаю, веб-службы работают, передавая сообщения XML SOAP взад и вперед, используя схему, указанную WSDL службы, но я не уверен, используют ли эти версии Axis разные версии спецификации веб-службы, которые могли бы их остановить. от разговора. Есть мысли?

Ответы [ 2 ]

4 голосов
/ 16 марта 2011

Хорошо, использование Axis 1.1 для связи с веб-сервисом Axis2 работает просто отлично. Я сгенерировал заглушки, используя Axis 1.1, создал класс Client и протестировал. API Axis 1.1 не предлагает некоторые из тех функций, которые разрешены в моей предыдущей версии Axis 1.4, в частности, в классе ParameterDesc, где вы можете указать, будут ли параметры метода веб-службы обнуляться или их minOccurs, но мои вызовы, похоже, работают нормально .

В целом, это можно сделать с помощью (как представляется,) базовых определений WSDL, однако я не уверен, использует ли Axis2 новые функциональные возможности, которые Axis 1.1 не может приспособить из-за устаревшего API Axis 1.1 ...

О, и последнее замечание, мне нужно было использовать заглушки SOAP 1.1 для моего запроса. Я не уверен на 100% почему, так как мои ответы возвращались как SOAP 1.2, но у вас это есть.

1 голос
/ 13 марта 2011

В целом ваше понимание верно, т.е. если клиент придерживается описания WSDL, он должен иметь возможность связаться с веб-службой.
Но Axis1 и Axis2 по умолчанию используют разные несовместимые кодировки.
Axis1 использует RPC (который устарел), а Axis2 использует doc / lit.
Таким образом, противоположность того, что вы спрашиваете, то есть клиент Axis2, взаимодействующий с сервером Axis1, не будет работать.
Для обратного (и того, что вы спрашиваете всообщение) Я не совсем уверен.
Вы пытались создать заглушки, используя WSDL?
Вы получили какие-либо ошибки?Если у вас нет ошибок при создании заглушки, я думаю, вы могли бы попробовать.

...