java - SEVERE : SAAJ0537: Invalid Content-Type. 可能是错误消息而不是 SOAP 消息

标签 java web-services soap netbeans

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

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

编辑 我意识到问题可能是由于我使用的 Web 服务使用自定义数据类型这一事实引起的,但我不知道该去哪里查找。 请帮忙

最佳答案

您的问题缺乏有助于确定问题的详细信息(例如,您使用的 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 验证了这一点。

How can I check the content type that the error is pointing at?

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

关于java - SEVERE : SAAJ0537: Invalid Content-Type. 可能是错误消息而不是 SOAP 消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23375987/

相关文章:

java - 如何从Web服务返回自定义对象的数组列表?

java - Web 服务读取超时,但操作仍然完成?

c# - 无法以与 C# 相同的格式为 WCF 服务传递 java 参数

java - 如何动态更改 JSplitPane 中的组件

java - 解释 Java 语法

java - 我们可以将请求文件名参数化到Karate中的Read方法吗?

php - PHP 可以根据示例 XML 文件编写 SOAP 函数吗?

java - 包含 2000+1 个枚举常量的枚举类是否达到任何限制?

java - 将第三方库 (libs.a) 与 NDK 链接

java - 从 PHP 调用 Web 服务