如何修改 JAXWS 生成的 WebMethod 请求的 XML
How to modify the XML of a WebMethod request generated by JAXWS
我有一个奇怪的问题:我有一个中央 Web 服务客户端调用数千个嵌入式 Web 服务服务器上的 Web 方法。我们最近发现 Web 服务服务器有一个错误,如果 XML 请求恰好是 0x4000 长,就会导致服务器崩溃。这种情况不会经常发生,但是每天都有成千上万的设备发生这种情况,从而使整个解决方案不稳定。
中期解决方案是修复服务器上的错误,但是要刷入数千个固件,这个解决方案在几天内部署起来并不容易。
短期解决方案是修改 XML 请求(如果它的长度恰好为 0x4000)并用 space 字符或类似字符填充它。
所以,XML 是由 JAX-WS 生成的(所有 类 都是从 Web 服务器制造商的 WSDL 生成的),我只是用方法调用一个用 @WebService
注释的接口用 @WebMethod, @WebResult, ...
.
注释
仅供参考:这是 JAX-WS 版本。
/**
* This class was generated by the JAX-WS RI.
* JAX-WS RI 2.1.3-hudson-390-
* Generated source version: 2.1
*
*/
我的问题是如何修改此调用生成的 XML 以检查其长度并在需要时修改它?
您可以使用客户端 SOAP 消息处理程序来解决您的问题。
检查以下 link:https://docs.oracle.com/cd/E21764_01/web.1111/e13734/handlers.htm
我有一个奇怪的问题:我有一个中央 Web 服务客户端调用数千个嵌入式 Web 服务服务器上的 Web 方法。我们最近发现 Web 服务服务器有一个错误,如果 XML 请求恰好是 0x4000 长,就会导致服务器崩溃。这种情况不会经常发生,但是每天都有成千上万的设备发生这种情况,从而使整个解决方案不稳定。
中期解决方案是修复服务器上的错误,但是要刷入数千个固件,这个解决方案在几天内部署起来并不容易。
短期解决方案是修改 XML 请求(如果它的长度恰好为 0x4000)并用 space 字符或类似字符填充它。
所以,XML 是由 JAX-WS 生成的(所有 类 都是从 Web 服务器制造商的 WSDL 生成的),我只是用方法调用一个用 @WebService
注释的接口用 @WebMethod, @WebResult, ...
.
仅供参考:这是 JAX-WS 版本。
/**
* This class was generated by the JAX-WS RI.
* JAX-WS RI 2.1.3-hudson-390-
* Generated source version: 2.1
*
*/
我的问题是如何修改此调用生成的 XML 以检查其长度并在需要时修改它?
您可以使用客户端 SOAP 消息处理程序来解决您的问题。 检查以下 link:https://docs.oracle.com/cd/E21764_01/web.1111/e13734/handlers.htm