使用GZIP,CXF和apache骆驼的无效XML字符

时间:2018-10-15 07:25:12

标签: cxf gzip

我有一个从端点接收消息并向端点发送消息的系统。此行为由ESB Apache骆驼管理。有时会发生奇怪的事情。看起来CXF或GZIP压缩在XML消息中产生了无效字符。我不知道在哪里找到问题,因为这种异常发生在1000条消息中的1条中。

全局编码设置为UTF-8

这是无效消息的一部分。有超过1000

<OutAreaUsedDomainLocation>
  <Identification schemeIdentifier="SLY" schemeAgencyIdentifier="260">KN�L00</Identification>
</OutAreaUsedDomainLocation>

CXF端点是在蓝图中定义的,如下所示:

<cxf:cxfEndpoint id="internalWSInterface" address="/messagingServiceInternalInputInterface/0.7"
                     wsdlURL="mss/ws/internal/wsdl/input_mss_internal_0.7.wsdl">
        <cxf:inInterceptors>
            <ref component-id="wss4jInInterceptor"/>
            <ref component-id="methodCheckInterceptor"/>
        </cxf:inInterceptors>
        <cxf:outFaultInterceptors>
            <bean id="wsErrorHandler-0.7"
                  class="eu.unicorn.basse.ms.pipeline.reception.route.ws.excepiton.WsErrorHandlerInterceptor"/>
        </cxf:outFaultInterceptors>
        <cxf:properties>
            <entry key="dataFormat" value="PAYLOAD"/>
            <entry key="mtom-enabled" value="true"/>
            <entry key="allowStreaming" value="true"/>
            <entry key="portName"
                   value="{${msgs.wsdl.internal.namespace}}input_mssSOAP"/>
            <entry key="ws-security.ut.validator" value-ref="usernameTokenValidator"/>
        </cxf:properties>
        <cxf:binding>
            <soap:soapBinding mtomEnabled="true" version="1.2"/>
        </cxf:binding>
        <cxf:features>
            <wsa:addressing xmlns:wsa="http://cxf.apache.org/ws/addressing" addressingRequired="false"/>
        </cxf:features>
    </cxf:cxfEndpoint>

对有效负载的SOAP请求是在XSD中定义的,如下所示:

<xsd:element name="data" maxOccurs="1" minOccurs="1" type="base64Binary"
xmime:expectedContentTypes="application/gzip"/>

Apache骆驼仅设置标头,并且不以任何方式修改消息的有效负载。

0 个答案:

没有答案