Web Services 如何在JAX-WS中处理无效(HTML)消息

ltqd579y  于 2022-11-15  发布在  其他
关注(0)|答案(1)|浏览(183)

我的SOAP客户机基于JAX-WS。服务器(由其他人编写和操作)通常返回有效的XML消息,但偶尔,当它遇到内部错误时,它会返回带有错误代码(HTTP 500)的HTML消息。
不幸的是,在这种情况下,JAX-WS客户机只抛出UnsupportedMediaException:“不支持的内容类型:文本/html”.
我现在需要的是一种方法来找出服务器报告的错误情况,以便采取措施。我宁愿更改服务器,但这是不可能的,因为这超出了我的能力范围。
至少,我需要记录传入的原始响应。
我知道可以按照以下建议记录所有请求和响应:https://stackoverflow.com/a/5647686/578759
但这可能会使系统日志溢出,因为我们通常每秒有几个请求。
因此,我宁愿只在出现错误时记录响应。
我们已经有了一个SOAPHandler,它记录传入和传出的SOAP消息,但它只对有效的SOAP消息有效,即在成功解析XML之后。如果传入的响应是HTML,我们甚至还没有到达调用处理程序的位置。
是否有方法在此阶段添加类似的处理程序?

tkclm6bt

tkclm6bt1#

你可以添加一个自定义的com.sun.xml.ws.api.pipe.TransportTubeFactory来访问HTTP响应的原始InputStream,参见我对这个问题的回答的最后一部分:UnsupportedMediaException -> how do you get the actual response?

相关问题