Недопустимый тип содержимого: ошибка application/xml для SOAP

У меня есть приложение Spring WS на Spring Boot 1.5, SAAJ-impl-1.3.28.jar. Он прекрасно работает с типом контента "text/xml", выбрасывая приведенное ниже исключение для Content-Type:application/xml.

"ОШИБКА - accC [.[.[.[MessageDispatcherServlet]: Servlet.service() для сервлета [messageDispatcherServlet] в контексте с путем [] вызвало исключение [Ошибка обработки запроса; вложенное исключение - org.springframework.ws.soap.SoapMessageCreationException: Не удалось создать сообщение из InputStream: недопустимый тип содержимого:application/xml. Является ли это сообщением об ошибке вместо ответа SOAP?; вложенное исключение - com.sun.xml.messaging.saaj.SOAPExceptionImpl: недопустимый тип содержимого:application/xml. Является ли это сообщение об ошибке вместо ответа SOAP?] с основной причиной com.sun.xml.messaging.saaj.SOAPExceptionImpl: недопустимый тип содержимого:application/xml. Это сообщение об ошибке вместо ответа SOAP?"

Я попытался принудительно обновить тип содержимого до "text/xml", расширив HttpServletResponseWrapper super.setContentType () в фильтре сервлетов, но это не помогло. Как обойти или принудительно обновить тип контента, чтобы удовлетворить SAAJ?

1 ответ

Я столкнулся с похожей ошибкой в ​​SOAP. Исправлено, установив тип контента на

"application/soap+xml; charset=UTF-8"

Насколько я понимаю, ошибка вызвана неправильным типом содержимого для входящего запроса. В этом случае, если вы хотите изменить его в фильтре сервлетов, вы должны использовать HttpServletRequestWrapper и переопределить getContentType() вернуть желаемый тип контента.

Что, как говорится, application/xml явно не правильный тип контента для SOAP 1.1, и вы должны попытаться исправить клиента.

Другие вопросы по тегам