我已经创建了Mule ESB项目,它使用web服务使用者调用第三方web服务。
使用属性传递自定义安全标头信息
使用转换xslt将输入消息从源转换到目标。
在输出方面没有转换。输出中只添加DOM到XML节点。
有人能为我提供这个问题的解决方案吗?
在调用服务时,我将得到以下异常。
异常堆栈是:
发布于 2016-09-08 10:09:44
如果您请求的第三方web服务提供gzip编码的响应,则可能会发生此问题。
HTTP/1.1 200 OK
Content-Type: text/xml;charset="utf-8"
Content-Encoding: gzip
Content-Length: 324
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>...在这种情况下,您需要使用某种类型的拦截器来解码响应。
发布于 2019-11-11 15:28:08
要解决这个问题,需要拦截响应消息并对其进行解码,因为它是以gzip编码格式传入的,或者是另一种压缩方式。
使用CXF,可以通过扩展AbstractPhaseInterceptor类和重写handleMessage方法来创建自定义拦截器。
然后获取消息内容,解码并在与InputStream相同的内容字段中替换它。
https://stackoverflow.com/questions/35248465
复制相似问题