Apache Axis WSDL2Java ошибка - отсутствует элемент <soap: fault> - PullRequest
5 голосов
/ 26 января 2010

Мы интегрируем сторонние веб-сервисы SOAP в наше приложение.WSDL используется с инструментом SOAPUI, где примеры запросов и ответов работали нормально.

Когда мы пытаемся интегрироваться с Apache Axis 1.3, где мы пробовали WSDL2JAVA с WSDL.Мы получили следующую ошибку

java.io.IOException: ОШИБКА: отсутствует элемент inFault «serviceFault» в операции «serviceFault», в привязке saveRegistration по адресу org.apache.axis.wsdl.symbolTable.SymbolTable.faultsFromSOAPFault (SymbolTable.java: 2858) в org.apache.axis.wsdl.symbolTable.SymbolTable.populateBindings (SymbolTable.java:2549) в org.apache.axis.wsdl.symbolTable.SymbolTable.populate (SymbolTable.java:744) илиapache.axis.wsdl.symbolTable.SymbolTable.add (SymbolTable.java:543) в org.apache.axis.wsdl.symbolTable.SymbolTable.populate (SymbolTable.java:518) в org.apache.axis.wsTable.mbol.SymbolTable.populate (SymbolTable.java:495) в org.apache.axis.wsdl.gen.Parser $ WSDLRunnable.run (Parser.java:361) в java.lang.Thread.run (неизвестный источник)

Кто-нибудь уже сталкивался с этой проблемой и решил?

Ответы [ 2 ]

14 голосов
/ 20 мая 2010

Я считаю, что JIRA открыта для этого.

Описание:

При наличии привязки мыла 1.2 к ошибке мыла элемент ошибки извлекается неправильно, что приводит к ошибке

 ERROR: Missing <soap:fault> element inFault "..." in operation "...", in binding ...

Их временная рекомендация - добавить строку кода и перекомпилировать Axis1 ... Nahh.

Лично я только что скачал файл wsdl (это сервис Axis 2 и у меня есть клиент Axis 1.5) и отредактировал пространство имен для всех следующих строк:

     <wsdl:fault name="Exception">
        <soap12:fault use="literal" name="Exception"/>
     </wsdl:fault>

до:

     <wsdl:fault name="Exception">
        <soap:fault use="literal" name="Exception"/>
     </wsdl:fault>

Как и предполагалось здесь .

Обновление до Axis2, однако, является лучшим долгосрочным решением. После решения этой проблемы я обнаружил еще больше ошибок в коде, который сгенерировал WSDL2JAVA.

0 голосов
/ 08 февраля 2019

Я решил эту проблему, изменив пространство имен XML, как показано ниже:

Изменить это

xmlns: soap12 = "http://schemas.xmlsoap.org/wsdl/soap12/"

до

XMLNS: soap12 = "http://schemas.xmlsoap.org/wsdl/soap/"

только 12 в конце удаляется.

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