Я впервые работаю с SOAP и пытаюсь создать процесс Java, который отправляет запросы SOAP на сервер. Я проверил запросы на SoapUI, которые были успешными, но запросы, сделанные из моей программы Java, терпят неудачу. Сравнивая точный xml между двумя, я заметил, что у Java есть это наверху:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
в то время как у SoapUI, который работает и использует импортированный файл wsdl, просто есть:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
По какой-то причине, сообщение, которое я создаю на Java, добавляет эти 3 новых атрибута в заголовок конверта, и я не знаю почему. Я использую API javax.xml.soap, и мой код для генерации SOAPMessage - это стандартная процедура:
MessageFactory messageFactory = MessageFactory.newInstance();
SOAPMessage soapMessage = messageFactory.createMessage();
При отладке я установил точку останова сразу после вызова, чтобы создать сообщение, и элемент SOAPMessage уже содержит эти нежелательные атрибуты. Кто-нибудь знает, как от них избавиться? Я считаю, что это несоответствие в конверте является причиной сбоя процесса Java, в то время как вызов SoapUI работает просто отлично.
Спасибо