サンプル データの評価中に、次の問題を発見しました。JMS のコンテンツに「逆さまのクエスチョン マーク」が含まれている<test>Inverted¿QuestionMark</test>
と、プロキシがクラッシュします。実際にはハングし、CPU が 100% に達します。簡単に再現するためのプロキシのコードは次のとおりです。
「test_qEncoding」という名前のキューに追加<test>Inverted¿QuestionMark</test>
するだけで、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"
機能しますが、コンテンツは出力の正しいエンドディングではありません。
JMS からメッセージを ISO-8859 として送信するにはどうすればよいですか?
上記のプロキシがハングして WSO2 ESB 全体をブロックするのはなぜですか?