0

そのようなものを追加することは可能ですか:

<?xml version="1.0" encoding="UTF-8"?>

インラインセクションの WSO2 XML フォーマッタに? タグは常にタグ"eventFormatter"の前に追加されますが、CEP を介してイベントを渡し、キューで応答を取得すると、出力 XML にこのタグがありません。

インラインセクションに追加したい場合、次のエラーが発生します。

Failed to update event formatter, Exception: javax.xml.stream.XMLStreamException: ParseError at [row,col]:[7,10] Message: The processing instruction target matching "[xX][mM][lL]" is not allowed.

//更新

私のフォーマッターは次のようになります。

<?xml version="1.0" encoding="UTF-8"?>
<eventFormatter name="Formatter_XML_Out" statistics="disable"
  trace="disable" xmlns="http://wso2.org/carbon/eventformatter">
    <from streamName="Test_stream_out_xml" version="1.0.0"/>
    <mapping customMapping="enable" type="xml">
        <inline>
            <Event>
                <Name>{{Name}}</Name>
                <Surname>{{Surname}}</Surname>
            </Event>
        </inline>
    </mapping>
    <to eventAdaptorName="ActiveMQ_Output" eventAdaptorType="jms">
        <property name="transport.jms.Destination">myQueue</property>
    </to>
</eventFormatter>

出力メッセージでこれを取得します:

<Event>
    <Name>XXXX</Name>
    <Surname>YYYYY</Surname>
</Event>

なぜこのタグ<?xml version="1.0" encoding="UTF-8"?>がなくなったのですか?

4

2 に答える 2

1

<?xml version="1.0" encoding="UTF-8"?>タグで XML マッピングを使用する場合、WSO2CEP 3.x はメッセージをフォーマットできないようです。

回避策は、代わりに次のようにテキスト マッピングを使用することです。

<?xml version="1.0" encoding="UTF-8"?>
<eventFormatter name="Formatter_XML_Out" statistics="disable"
  trace="disable" xmlns="http://wso2.org/carbon/eventformatter">
    <from streamName="Test_stream_out_xml" version="1.0.0"/>
    <mapping customMapping="enable" type="text">
        <inline>
          <![CDATA[
            <?xml version="1.0" encoding="UTF-8"?>
            <Event>
                <Name>{{Name}}</Name>
                <Surname>{{Surname}}</Surname>
            </Event>
          ]]>
        </inline>
    </mapping>
    <to eventAdaptorName="ActiveMQ_Output" eventAdaptorType="jms">
        <property name="transport.jms.Destination">myQueue</property>
    </to>
</eventFormatter>

ここではtype="text"を使用します。

于 2015-04-24T12:08:52.913 に答える