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