2016-06-22 46 views
0

我正在開發一個mule工作流來將記錄插入到數據庫中,如果記錄是已經存在併發送HTTP狀態(409-Conflict)並將其發送回客戶端。Mule異常策略定義:發現無效內容以元素'choice-exception-strategy'開頭

<when expression="#[message.inboundProperties['http.method'] == 'POST']"> 
         <json:json-to-object-transformer returnClass="java.lang.Object" doc:name="JSON to Object" /> 
         <set-variable variableName="id" value="#[message.payload.id]" doc:name="Save brandId"/> 
         <json:object-to-json-transformer doc:name="Object to JSON"/> 
         <db:insert config-ref="Postgres" doc:name="Configstore"> 
          <db:parameterized-query><![CDATA[INSERT INTO messages("id", "data") VALUES (#[flowVars['id']], CAST(#[message.payload] as json))]]> </db:parameterized-query> 
         </db:insert> 
         <logger message="REST Response = #[message.payload]" level="INFO" doc:name="LOG Rest Response"></logger> 

         <choice-exception-strategy name="Global_Choice_Exception_Strategy" doc:name="Global Choice Exception Strategy"> 
          <catch-exception-strategy doc:name="Catch_Exception_Strategy" when="#[exception.causedBy(org.postgresql.util.PSQLException)]"> 
          <set-payload value="The request cannot be processed, the error is #[exception.getExceptionPayload()]"/> 
           <set-property propertyName="http.status" value="404"/> 
           <http:outbound-endpoint exchange-pattern="request-response" host="localhost" port="8081" method="POST" doc:name="HTTP"/> 
          </catch-exception-strategy> 
         </choice-exception-strategy> 

        </when> 

啓動重複失敗,並在日誌中報告以下錯誤。

cvc-complex-type.2.4.a:從元素'choice-exception-strategy'開始找到無效的內容。 「{」http://www.mulesoft.org/schema/mule/core「之一:抽象消息處理器,」http://www.mulesoft.org/schema/mule/core「:抽象出站端點,」http://www.mulesoft.org/schema/mule/core「:抽象混合內容消息處理器}。 在org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(來源不明)〜[:?]

此錯誤或者彙報了選擇的異常策略和追趕異常的策略。不知道這裏什麼是無效的,或者需要定義一個自定義的消息處理器或出站端點。我正在使用mule EE-3.8.0

+0

它應該在流動水平。在''末尾之前定義它。 ..... 。如果您使用的是Intellji GUI,將會丟失。 – star

回答

1

問題是,您正在選擇元素中使用異常策略。必須爲整個流程定義異常策略,而不是單個元素(有些確實允許它們,但是很少見)。您可以在herehere的示例中找到更多信息。

HTH

+0

感謝您的回答。問題解決了。 – Kris

相關問題