我的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,我们甚至没有达到调用处理程序的程度。
有没有办法在这个阶段添加类似的处理程序?