Тип содержимого сообщения Java SOAPJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Тип содержимого сообщения Java SOAP

Сообщение Anonymous »

Я использовал maven wsimport, и Java 1.7 сгенерировал клиентский код SOAP.
WSDL был предоставлен клиентом, я считаю, что это SOAP-сервер, поддерживаемый .NET.

После вызова службы я постоянно получаю сообщение об ошибке, например:


Сервер отправил код состояния HTTP 415: невозможно обработать сообщение
потому что тип контента 'application/soap+xml; кодировка = utf-8; не был
ожидаемым типом 'text/xml; charset=utf-8'.


Я пытаюсь изменить MimeHeader в классе SOAPMessage с помощью настроенного обработчика (и я правильно зарегистрировал обработчик в цепочке):

Код: Выделить всё

MimeHeaders mimeHeaders = msg.getMimeHeaders();
mimeHeaders.removeAllHeaders();
mimeHeaders.removeHeader("Content-Type");
mimeHeaders.addHeader(HttpHeaders.CONTENT_TYPE, "text/xml; charset=utf-8");
Кажется, приведенный выше код ничего не меняет внутри mimiHeaders, векторный объект кажется неизменяемым....

затем я создал сообщение SOAP вручную

Код: Выделить всё

  MessageFactory newInstance = MessageFactory.newInstance(SOAPConstants.SOAP_1_1_PROTOCOL);
MimeHeaders he = new MimeHeaders();
he.addHeader("Content-Type", "text/xml; charset=utf-8");
String ss = "xxxxx";
InputStream in = new ByteArrayInputStream(ss.getBytes(StandardCharsets.UTF_8));

SOAPMessage createMessage = newInstance.createMessage(he, in);
createMessage.writeTo(System.out);
context.setMessage(createMessage);
msg.saveChanges();
на этот раз для mimeHeader и Content-Type самого SOAPMessage установлено значение
text/xml; charset=utf-8

но сервер все еще из-за той же ошибки 415 application/soap+xml не ожидается......

Я понимаю, что сервер, похоже, следует SOAP 1.1, поэтому он ожидает text/xml... но когда я создал фабрику, я четко указал протокол 1.1 и вручную установил mimeHeader. Я действительно в замешательстве

Примечание: использование SOAPUI или PostMan абсолютно нормально, проблема возникает только при использовании Java-клиента, сгенерированного wsimport

Подробнее здесь: https://stackoverflow.com/questions/444 ... ntent-type
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»