2013-03-18 20 views
0

我在多個表中插入其中一些是直接在插入Wso2ESB處理這部分更多的是我們需要拆分這意味着使用迭代中介我已經用兩個代理,並添加故障做序列還插入是確定的,如果我的DSS是下跌它傳遞正確的故障客戶端。問題是當喜歡這樣..primarykey voilation DSS錯誤occuers我每個序列即使在加入這個屬性<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] 
+0

請參閱本[線索] [1]它包含了建議答案 [1]。http://stackoverflow.com/questions/15493129/wso2esb-有,根據對這一配置錯誤, – 2013-03-19 07:38:10

+0

禁用distrubuted複選框wso2dss – Faisal 2013-03-19 08:46:48

+0

你解決你的問題@ faisal.shaik? – 2014-10-24 15:14:08

回答

0

當誤差不通過表示:「非法處理指令目標(」 XML「); xml(不區分大小寫)由規格保留。「看來你使用的是保留字‘XML’的迴應,你從DSS回來。請仔細檢查從DSS XML響應,並運行反應槽的XML驗證器(可使用Eclipse XML驗證)來看看反應是一切OK