严重:SAAJ0537:内容类型无效。可能是错误消息而不是SOAP消息

时间:2014-04-29 21:52:58

标签: java web-services soap netbeans

我想运行一个调用Web服务的java应用程序。 netbeans ide中的一切工作正常,但是当我运行.jar时失败了。可能是什么问题呢? 如何检查错误指向的内容类型?

错误说:" 严重:SAAJ0537:内容类型无效。可能是错误消息而不是SOAP消息。 com.sun.xml.messaging.saaj.MessageImpl identifyContentType "

EDIT 我意识到问题可能源于我消费的Web服务使用自定义数据类型这一事实,但我不知道在哪里查看。 请帮忙

1 个答案:

答案 0 :(得分:1)

您的问题缺乏有助于识别问题的详细信息(例如,您使用的是哪个Web容器,某些源代码等),但我遇到并解决了同样的问题。我使用Tomcat和Eclipse,显然,问题出现是因为出于某种原因, Tomcat无法找到一些JAR,即使我已经在我的构建路径中指定了它们。解决方案是将JAR放在Tomcat的实际lib目录中,而不是放在某个项目特定的位置。 (See this same case with log4j.

这种缺失的JAR会导致servlet在调用时产生内部服务器错误。 Tomcat生成一个错误页面---类型为" text / html" ---并将其发送回客户端。所以,客户阅读" text / html"而不是预期的" text / xml"。

对于测试this SOAP tutorial会因jaxm-api.jar而产生指定的错误,但可以使用上述解决方案修复。我已经用Tomcat 7验证了这一点。

  

如何检查错误指向的内容类型?

没有一些代码就有点难以回答。但是如果您使用javax.xml.soap.SOAPPart,它有方法来检查SOAP事务的标头。 Check the javadocs。羞耻它不会覆盖toString()。但就个人而言,我没有通过Java调试方法得出这个答案,而是通过查看TCP转储。