我在Spring Boot 1.5上有一个应用程序Spring WS,SAAJ-impl-1.3.28.jar。对于内容类型“ text / xml”的购买,它抛出以下异常,适用于Content-Type:application / xml。
“错误-accC [。[。[。[。[messageDispatcherServlet]:路径为[]的上下文中的Servlet [messageDispatcherServlet]的Servlet.service()引发了异常[请求处理失败;嵌套的异常是组织.springframework.ws.soap.SoapMessageCreationException:无法从InputStream创建消息:无效的Content-Type:应用程序/ xml。这是错误消息,而不是SOAP响应吗;嵌套异常是com.sun.xml.messaging.saaj。 SOAPExceptionImpl:无效的Content-Type:应用程序/ xml。这是错误消息,而不是SOAP响应吗? com.sun.xml.messaging.saaj.SOAPExceptionImpl:无效的Content-Type:应用程序/ xml。这是错误消息,而不是SOAP响应吗?”
我尝试通过在Servlet过滤器中扩展 HttpServletResponseWrapper super.setContentType()来强制将内容类型更新为“ text / xml”,但这并没有帮助。如何绕过或强制更新内容类型以满足SAAJ?
答案 0 :(得分:0)
我的理解是,错误是由传入请求的错误内容类型触发的。在这种情况下,如果要在servlet过滤器中进行更改,则可以使用HttpServletRequestWrapper
并覆盖getContentType()
以返回所需的内容类型。
话虽这么说,application/xml
显然不是SOAP 1.1的正确内容类型,所以您应该尝试修复客户端。
答案 1 :(得分:0)
我在SOAP中遇到了类似的错误。通过将内容类型设置为
来解决此问题"application/soap+xml; charset=UTF-8"