【发布时间】:2014-03-06 11:32:18
【问题描述】:
我的 SOAP 客户端基于 JAX-WS。服务器(由其他人编写和操作)通常会返回有效的 XML 消息,但偶尔会在遇到内部错误时返回带有错误代码 (HTTP 500) 的 HTML 消息。
不幸的是,在这种情况下,JAX-WS 客户端仅抛出 UnsupportedMediaException: "Unsupported Content-Type: text/html"。
我现在需要一种方法来找出服务器报告的错误情况以便采取行动。我宁愿更换服务器,但这是不可能的,因为它超出了我的能力范围。
至少,我需要记录传入的原始响应。
我知道可以按照以下建议记录所有请求和响应:https://stackoverflow.com/a/5647686/578759
但这可能会溢出系统日志,因为我们通常每秒有几个请求。
所以我宁愿只在出现错误时记录响应。
我们已经有一个 SOAPHandler,它记录传入和传出的 SOAP 消息,但它只适用于有效的 SOAP 消息,即在成功解析 XML 之后。如果传入的响应是 HTML,我们甚至不会到达调用处理程序的位置。
有没有办法在这个阶段添加一个类似的处理程序?
【问题讨论】:
-
您的客户端的运行环境是什么?它在一个servlet中吗?独立客户端等
-
@kolossus 客户端在 Linux 上的 Tomcat 6 中作为 Java 6 servlet 运行。
-
您还有兴趣解决这个问题还是找到解决方案?
标签: java web-services soap jax-ws