如何使用WSO2 ESB将¿编码为ISO-8859

时间:2013-03-22 08:11:21

标签: encoding jms wso2 wso2esb

在评估样本数据期间,我发现了以下问题。当JMS中的内容包含“颠倒问号”<test>Inverted¿QuestionMark</test>时,代理崩溃 - 实际上挂起,CPU上升到100%。 这里代码的代码很容易重现:

只需将<test>Inverted¿QuestionMark</test>添加到名为“test_qEncoding”的队列中,然后查看CPU如何启动并且代理挂起。

<?xml version="1.0" encoding="UTF-8"?>
<proxy xmlns="http://ws.apache.org/ns/synapse" name="test_encoding_crash_jms" transports="jms" startOnLoad="true" trace="disable">
    <parameter name="transport.jms.Destination">test_qEncoding</parameter>
    <parameter name="transport.jms.ConnectionFactory">myQueueConnectionFactory</parameter>
    <parameter name="transport.jms.DestinationType">queue</parameter>
    <parameter name="transport.jms.ContentType">
        <rules>
            <jmsProperty>contentType</jmsProperty>
            <default>application/xml;charset="iso-8859-15"</default>
        </rules>
    </parameter>
    <target>
        <inSequence>        
            <log level="custom">
                <property name="Context" value="Proxy test_encoding_crash_jms called"/>
            </log>
            <log level="full"/>
        </inSequence>
    </target>
</proxy>

当我使用vfs代理并读取为ISO-8859时,它可以工作。如果我没有指定;charset="iso-8859-15",那么它也会起作用,但内容不适合我输出的正确编码。

当我想将其发送到ISO-8859时,如何从JMS收到消息?

为什么上面的代理会挂起并阻止整个WSO2 ESB?

1 个答案:

答案 0 :(得分:0)

有人回来了[1]。似乎是一个存在的问题。有关详细信息,请参阅JIRA。此外,如果您可以一致地重现它,请提及,以便我们可以提高优先级。

[1] https://wso2.org/jira/browse/ESBJAVA-1751