Несоответствие версии мыла в Java - PullRequest
0 голосов
/ 28 июня 2018

Java-приложение, сгенерированное по запросу Soap [Failed]

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
   xmlns:dir="http://xxxxxxxxxx">
  <soapenv:Body>
    <xxxxxxxxxxx>       
  </soapenv:Body>
</soapenv:Envelope>

Soap-запрос, сгенерированный SoapUI [Успешно]

 <soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" 
   xmlns:dir="http://xxxxxxxxxx">
 <soap:Header/>
   <soap:Body>
     <dir:ping/>
   </soap:Body>
 </soap:Envelope>

Как изменить пространство имен uri "http://schemas.xmlsoap.org/soap/envelope/" на" http://www.w3.org/2003/05/soap-envelope". Я не создал ни одного клиента, я только что создал класс Java, и я могу отправить запрос и получить ответ с кодом ошибки. из-за вышеупомянутых ссылок URI. Я обнаружил, что это несоответствие версий, но я не знаю, как изменить.

Ответы [ 2 ]

0 голосов
/ 05 июля 2018

фабрика MessageFactory = MessageFactory.newInstance (); ------ это даст версию 1.1 по умолчанию

смените на следующее, чтобы получить версию пространства имен мыла 1.2

Завод фабрики сообщений = MessageFactory.newInstance (SOAPConstants.SOAP_1_2_PROTOCOL);

вы можете найти его в уроках SAAJ

0 голосов
/ 02 июля 2018

Мне кажется, что вы должны использовать реализацию SOAP по умолчанию (которая является SOAP 1.2), как указано в вопросе Statckoverflow . Ваш веб-сервис может ожидать SOAP 1.1.

Если вы могли бы изменить реализацию SOAPMessageFactory1_1Impl, это должно решить вашу проблему. Ваше пространство имен будет изменено на xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"

Измените callSoapWebService метод в первой строке на следующий, и это должно решить проблему.

SOAPMessage soapMessage = SOAPMessageFactory1_1Impl.newInstance().createMessage();

Надеюсь, это поможет.

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