0

複数のテーブルに挿入しています。そのうちのいくつかは直接挿入され、さらにいくつかは分割が必要です。つまり、反復メディエーターを使用することを意味します。2 つのプロキシを使用して実行し、障害シーケンスを追加します。DSS がダウンしている場合、適切な障害をクライアントに渡しています。問題は、dss で ..primarykey voilation のようなエラーが発生した場合<property name="FORCE_ERROR_ON_SOAP_FAULT" value="true"/>です。

 ERROR - NativeWorkerPool Uncaught exception
org.apache.axiom.om.OMException: com.ctc.wstx.exc.WstxParsingException: Illegal processing instruction target ("xml"); xml (case insensitive) is reserved by the specs.
 at [row,col {unknown-source}]: [1,167]

上記のようなESB側のエラーが発生し、私の障害シーケンスを添付しています..

<sequence xmlns="http://ws.apache.org/ns/synapse" name="fault">
   <property xmlns:ns="http://org.apache.synapse/xsd" name="actionid" expression="get-property('actionid')"/>
   <property xmlns:ns="http://org.apache.synapse/xsd" name="actiondetailid" expression="get-property('actiondetailid')"/>
   <dbreport>
      <connection>
         <pool>
            <password>Youtility11</password>
            <user>youtilitydba</user>
            <url>jdbc:postgresql://localhost:5432/USCProduction</url>
            <driver>org.postgresql.Driver</driver>
         </pool>
      </connection>
      <statement>
         <sql>
            <![CDATA[                                                                                    delete from tactiondetail where actiondetailid=?]]></sql>
            <parameter xmlns:ns="http://org.apache.synapse/xsd" expression="get-property('actiondetailid')" type="BIGINT"/>
         </statement>
      </dbreport>
      <log level="full"/>
      <dbreport>
         <connection>
            <pool>
               <password>Youtility11</password>
               <user>youtilitydba</user>
               <url>jdbc:postgresql://localhost:5432/USCProduction</url>
               <driver>org.postgresql.Driver</driver>
            </pool>
         </connection>
         <statement>
            <sql>
               <![CDATA[                                                                                                         delete from tactiondetail where actionid=?]]></sql>
               <parameter xmlns:ns="http://org.apache.synapse/xsd" expression="get-property('actionid')" type="BIGINT"/>
            </statement>
         </dbreport>
         <log>
            <property name="MESSAGE" value="Executing default 'fault' sequence"/>
            <property xmlns:ns="http://org.apache.synapse/xsd" name="ERROR_CODE" expression="get-property('ERROR_CODE')"/>
            <property xmlns:ns="http://org.apache.synapse/xsd" name="ERROR_MESSAGE" expression="get-property('ERROR_MESSAGE')"/>
         </log>
         <switch xmlns:ns="http://org.apache.synapse/xsd" source="get-property('ERROR_CODE')">
            <case regex="500000">
               <property name="ERROR_MESSAGE" value="duplicate key value violates or The system is attempting to access an inactive service " scope="default" type="STRING"/>
            </case>
            <case regex="101503">
               <property name="ERROR_MESSAGE" value="Error connecting to the back end" scope="default" type="STRING"/>
            </case>
         </switch>
         <payloadFactory>
            <format>
               <ResponseJSON xmlns="">
                  <Exception>$1</Exception>
                  <Status>$2</Status>
                  <Total>0</Total>
               </ResponseJSON>
            </format>
            <args>
               <arg xmlns:ns="http://org.apache.synapse/xsd" expression="get-property('ERROR_MESSAGE')"/>
               <arg xmlns:ns="http://org.apache.synapse/xsd" expression="get-property('ERROR_CODE')"/>
            </args>
         </payloadFactory>
         <header name="To" action="remove"/>
         <property name="RESPONSE" value="true" scope="default" type="STRING"/>
         <property name="NO_ENTITY_BODY" action="remove" scope="axis2"/>
         <log level="full"/>
         <send/>
      </sequence>

dss がオフのときはいつでも障害メッセージを渡しますが、dss が実行中のモードでは渡さないため、このようなエラーが発生します

Caused by: com.ctc.wstx.exc.WstxParsingException: Illegal processing instruction target ("xml"); xml (case insensitive) is reserved by the specs.
 at [row,col {unknown-source}]: [1,167]
4

1 に答える 1

0

エラーが言うように: " Illegal processing instruction target ("xml"); xml (case insensitive) is reserved by the specs. " DSS から返される応答で予約語 "xml" を使用しているようです。DSS からの XML 応答を再確認し、XML バリデータ (Eclipse XML バリデータを使用する場合もあります) を介して応答を実行し、応答がすべて問題ないかどうかを確認してください。

于 2013-03-25T08:51:20.067 に答える