Hi,
I have a problem with characters encoding. I have configured a JMS bridge to
our legacy JMS v. 1.0.2 SeeBeyond eGate (the only working way).
<broker xmlns="http://activemq.apache.org/schema/core" id="localbroker"
brokerName="localBroker" persistent="false">
<jmsBridgeConnectors>
<jmsTopicConnector outboundTopicConnectionFactory="#remoteFactory"
outboundClientId="AMQ-Bridge-client">
<inboundTopicBridges>
<inboundTopicBridge inboundTopicName="etItemsFromRMS"
consumerName="AMQ-Bridge"/>
</inboundTopicBridges>
</jmsTopicConnector>
</jmsBridgeConnectors>
<transportConnectors>
<transportConnector name="openwire" uri="tcp://localhost:61616" />
</transportConnectors>
</broker>
<bean id="remoteFactory"
class="com.seebeyond.jms.client.STCTopicConnectionFactory">
<constructor-arg value="10.0.3.14"/>
<constructor-arg value="24064"/>
</bean>
Problem is that type of message on eGate JMS is byte array (byte[] or
something like BytesMessage), but after bridging to ActiveMQ encoding of
Polish characters is changed. Originally they are encoded using UTF-8.
So first question is how exactly I can check what conversion is made and
what type of message is at ActiveMQ (maybe some debugging options??).
After that I defined a Camel Route in AMQ embedded Camel like this:
<route>
<description>Example Camel Route</description>
<from uri="activemq:topic:etItemsFromRMS"/>
<log message="${body}"/>
<to uri="activemq:queue:qItemsFromRMS"/>
</route>
and checked that encoding is wrong.
It looks like message is somewhere converted from byte[] to String using
Windows system encoding WIN-1250 (or cp1250) Or maybe byte[] -->
String(UTF-8) --> String(WIN-1250).
Sorry for my bad english and also I wrote all above from memory, so there
can be some little mistakes - if some one want to help, I will update
information with working examples.
--
View this message in context: http://activemq.2283324.n4.nabble.com/JMS-Bridge-encoding-problem-tp4656284.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.
|