Генерация классов из WSDL: дублирующаяся операция с ошибкой имени - PullRequest
1 голос
/ 25 ноября 2011

Я пытаюсь сгенерировать классы Java с помощью Eclipse (Новый клиент веб-службы).

Eclipse выдает это исключение:

Error in generating Java from WSDL: java.lang.IllegalArgumentException: Duplicate operation with name=OpName, found in portType '{http://tempuri.org/}MyServiceSoap'.

В WSDL:

<wsdl:operation name="OpName"> <wsdl:input message="tns:tnsIn"/> <wsdl:output message="tns:tnsOut"/> </wsdl:operation>

<wsdl:operation name="OpName"> <wsdl:input name="name" message="tns:tnsIn"/><wsdl:output name="name" message="tns:tnsOut"/></wsdl:operation>

Как решить эту проблему?Не могли бы вы предложить какие-либо другие инструменты или среды разработки для генерации классов в соответствии с WSDL?

Ответы [ 2 ]

3 голосов
/ 25 ноября 2011

Это случай перегрузки операции.Это было поддержано только в спецификации WSDL1.1.Согласно новым спецификациям WSDL1.2, перегрузка операций не допускается.Вам придется изменить название операции.

Проверить эту ссылку

Цитировать по этой ссылке.

Здесь важно отметить, что перегруженные операции поддерживаются в WSDL 1.1 (см. Ссылки в разделе «Ресурсы» ниже), но были удалены из проекта спецификации для WSDL 1.2.Комитет, разрабатывающий новый проект, решил, что перегрузка не должна присутствовать.Причины и мнения для этого решения выходят за рамки данной статьи, но в текущем рабочем проекте для WSDL 1.2

содержатся ссылки на него, так что просто для того, чтобы оно заработало, измените имяоперации или, если вы генерируете клиента, проверьте, предоставляет ли eclipse какую-либо опцию для выбора версии WSDL.

0 голосов
/ 25 ноября 2011

Возможно, избавиться от второй операции OpName в wsdl?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...