SpringWS无效的内容类型

SpringWS无效的内容类型,spring,types,Spring,Types,我有一个SpringWS客户端。我通过wsimport生成了WSDL存根 当我尝试发送请求时,我收到一个无效的内容类型异常: 严重:SAAJ0537:无效的内容类型。可能是错误消息而不是SOAP消息 线程“main”org.springframework.ws.soap.SoapMessageCreationException中出现异常:无法从InputStream创建消息:无效内容类型:text/html。这是一条错误消息而不是SOAP响应吗?;嵌套异常为com.sun.xml.messagi

我有一个SpringWS客户端。我通过wsimport生成了WSDL存根

当我尝试发送请求时,我收到一个无效的内容类型异常:

严重:SAAJ0537:无效的内容类型。可能是错误消息而不是SOAP消息 线程“main”org.springframework.ws.soap.SoapMessageCreationException中出现异常:无法从InputStream创建消息:无效内容类型:text/html。这是一条错误消息而不是SOAP响应吗?;嵌套异常为com.sun.xml.messaging.saaj.SOAPExceptionImpl:无效内容类型:text/html。这是一条错误消息而不是SOAP响应吗

这是否表示我发送的消息的内容类型无效,或者我收到的响应的内容类型无效?如果在客户端,如何设置内容类型

我试图通过soapui模拟web服务。我能够发送和接收正确的响应

编辑:

在我的日志中,显示已发送请求:

调试[org.springframework.ws.client.MessageTracing.sent]-发送请求

然后我得到一个例外:

线程“main”org.springframework.ws.soap.SoapMessageCreationException中的异常:

问题解决了

原来我没有发送任何SOAP内容。SOAP标头设置正确。但是肥皂盒是空的。为了解决这个问题,我必须附上我请求的内容

之前:

GetDeletedRequest request = new GetDeletedRequest();
JAXBElement res = (JAXBElement) webServiceTemplate.marshalSendAndReceive(request, new WebServiceMessageCallback() {...}
之后:

GetDeletedRequest request = new GetDeletedRequest();
request.setGetDeletedFilter(deleteFilter); // This is the content that I'm missing!
JAXBElement res = (JAXBElement) webServiceTemplate.marshalSendAndReceive(request, new WebServiceMessageCallback() {...}
我忽略了这个错误,因为我专注于将Axis1.x客户机实现移植到SpringWS实现

一些人,包括Arjen Poustma,建议使用tcpmon来嗅探发送的内容。我没有正确配置和运行它(这是另一个不相关的问题)。但这让我有了一个想法,首先检查我的申请表发送的内容

我环顾四周,在Spring论坛上看到了一个类似的问题,关于在的无效内容类型。最后一张海报建议使用CommonHttpMessageSender,就像他在上提供的示例一样(这是一个很好的示例)。通过CommonHttpMessageSender,它可以打印出我的整个SOAP信封:

<property name="messageSender">
     <bean class="org.springframework.ws.transport.http.CommonsHttpMessageSender" />
</property>

我在这里记录我的经历,因为我知道有一天会有另一个像我一样的人遇到同样的问题