我目前正在使用Mule ESB 3.5.0(非EE)公開的API。該API接受一個XML文件,通過HTTP導入帳戶並將此任務定義放入RabbitMQ隊列中。另一個Mule流程負責從隊列中一次性取得項目(感謝processingStrategy="synchronous"
)並將它們提供給平臺核心。隊列是必需的,因爲核心能夠一次處理一個文件。如何使用枚舉值作爲方法參數調用Java Mule組件?
以上設置爲&平穩運行。我現在想要實現的目的是讓我們的客戶通過公開一個HTTPS端點來解決集成問題,其中導入狀態將可用(由請求的某個GUID和SHA1標識)。
我創建的處理添加狀態更新,該方法簽名的存在的邏輯簡單POJO組件:
void addStatus(final String guid, final String status)
我設法調用上述方法通過定義bean作爲
<bean id="importStatusComponent" class="com.example.ImportStatusComponent" />
並調用騾流中的java組件:
<invoke object-ref="importStatusComponent" method="addStatus"
methodArguments="#[flowVars.guid], Import started"
methodArgumentTypes="java.lang.String, java.lang.String" />
由於我們想向客戶公開這些信息,並允許他們對狀態進行一些程序化檢查,因此我決定將狀態類型更改爲基於枚舉的字典ImportStatusEnum
。
不幸的是,我無法提供enum進入MEL,進入<invoke methodArgument="">
標記屬性。什麼我都試過
例子:
1)參數爲兩個獨立的MEL表達。
<configuration>
<expression-language>
<import class="com.example.ImportStatusEnum" />
</expression-language>
</configuration>
<invoke object-ref="importStatusComponent" method="addStatus"
methodArguments="#[flowVars.guid], #[ImportStatusEnum.STARTED]"
methodArgumentTypes="java.lang.String, com.example.ImportStatusEnum" />
2)作爲單個MEL表達式的參數。 3)全限定類名而不是導入(此處未顯示)。
如何將枚舉值作爲方法參數傳遞給Mule中的invoke
組件?任何幫助將不勝感激:)
你有嘗試1得到什麼錯誤? –