在Java中使用SAAJ API时出现无效的内容类型错误

在Java中使用SAAJ API时出现无效的内容类型错误,java,soap,content-type,soap-client,saaj,Java,Soap,Content Type,Soap Client,Saaj,我正在尝试使用SAAJ访问SAOPAPI。 我遵循了其他答案中关于创建SOAP请求主体和 调用SOAP API。 此特定服务不需要任何身份验证(如API文档中所述),也不接受任何输入参数 From WSDL: (copied only relevant content) <xs:complexType name="getCustomerNames"> <xs:sequence/> </xs:complexType> ... <wsdl:operati

我正在尝试使用SAAJ访问SAOPAPI。 我遵循了其他答案中关于创建SOAP请求主体和 调用SOAP API。 此特定服务不需要任何身份验证(如API文档中所述),也不接受任何输入参数

From WSDL: (copied only relevant content)

<xs:complexType name="getCustomerNames">
<xs:sequence/>
</xs:complexType> 
...
<wsdl:operation name="getCustomerNames">
<wsdl:input message="tns:getCustomerNames" name="getCustomerNames"/>
<wsdl:output message="tns:getCustomerNamesResponse" name="getCustomerNamesResponse"/>
<wsdl:fault message="tns:SOAPException" name="SOAPException"/>
</wsdl:operation>
每当执行此操作时,我都会收到以下错误消息。我不明白为什么。。相同的url正在返回 当我从Unix执行curl命令并发布由上述java代码创建的相同请求xml时,正确的响应

Feb 14, 2017 3:21:54 PM com.sun.xml.internal.messaging.saaj.soap.MessageImpl identifyContentType
SEVERE: SAAJ0537: Invalid Content-Type. Could be an error message instead of a SOAP message
com.sun.xml.internal.messaging.saaj.SOAPExceptionImpl: Invalid Content-Type:text/html. Is this an error message instead of a SOAP response?

该错误意味着服务器使用HTML页面而不是SOAP响应进行响应。要调试它,您需要截取响应并查看HTML页面的内容;它可能会包含有关该问题的更多信息。

谢谢您的建议。我对Java和API都是新手。你能让我知道我是如何收到HTML回复的信息的吗。目前,我正在接收Connection.call()作为SOAPMessage对象类型的输出。我应该将其更改为什么?当我对相同的请求XML使用curl命令时,会得到以下响应。下面的回答说是肥皂,不是吗?例如,您可以使用Wireshark之类的工具拦截响应。不幸的是,我没有权限在我的系统上安装Wireshark。但我试着使用chrome“postman”应用程序扩展来发布消息。它返回了如上所述的XML响应,即使通过curl命令,我也能够与所有服务交互。我在前面的评论中发布的响应xml不是SOAP响应吗?如果您没有安装Wireshark的权限,请告诉我,您还可以使用其他工具:。
Feb 14, 2017 3:21:54 PM com.sun.xml.internal.messaging.saaj.soap.MessageImpl identifyContentType
SEVERE: SAAJ0537: Invalid Content-Type. Could be an error message instead of a SOAP message
com.sun.xml.internal.messaging.saaj.SOAPExceptionImpl: Invalid Content-Type:text/html. Is this an error message instead of a SOAP response?