我有一个奇怪的问题:我有一个中央Web服务客户端,可以在数千个嵌入式Web服务服务器上调用Web方法。我们最近发现Web服务器有一个错误,如果XML请求的长度恰好为0x4000,则会导致服务器崩溃。这种情况不会经常发生,但每天都会发生数以千计的设备,使整个解决方案不稳定。
中期解决方案是修复服务器上的错误,但有数千个固件闪存,这个解决方案在几天内就不容易部署。
短期解决方案是修改XML请求(如果长度正好为0x4000)并使用空格字符或类似内容填充它。
因此,XML是由JAX-WS生成的(所有类都是从Web服务器制造商的WSDL生成的),我只是使用注释为{{1}的方法调用带有@WebService
注释的接口。 }。
仅供参考:这是JAX-WS版本。
@WebMethod, @WebResult, ...
我的问题是如何修改此调用生成的XML以检查其长度并在需要时进行修改?
答案 0 :(得分:1)
您可以使用客户端SOAP消息处理程序来解决您的问题。 请查看以下链接:https://docs.oracle.com/cd/E21764_01/web.1111/e13734/handlers.htm