0

在评估样本数据的过程中,我发现了以下问题。当 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?

4

1 回答 1

0

这在某个时候被报道过[1]。似乎是一个存在的问题。有关详细信息,请参阅 JIRA。此外,如果您可以始终如一地复制它,请提及这一点,以便我们提高优先级。

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

于 2013-03-25T04:04:29.007 回答