Недопустимый символ XML с использованием GZIP, CXF и Apache Camel - PullRequest
0 голосов
/ 15 октября 2018

У меня есть система, получающая и отправляющая сообщения с и на конечные точки.Это поведение управляется верблюдом Apache ESB.Иногда происходят странные вещи.Похоже, что сжатие CXF или GZIP создает недопустимый символ � в сообщении XML.Я не знаю, где найти проблему, потому что эта аномалия происходит в 1 из 1000 сообщений.

Глобальная кодировка установлена ​​в 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 устанавливает только заголовки и никак не изменяет полезную нагрузку сообщения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...