[英]Programmatically sending mule message (formerly: Accessing mule http endpoint from java)
滾動到最后,找到解決主題問題的方法。 最初的問題是要求一些不同的東西。
作為更大流程的一部分,我需要一起獲取並鏈接兩個相關的數據集。 檢索數據的方式(動態crm,n:n關系......)迫使我們再次檢索第二組數據,以便它具有所有必要的信息。 在對此數據進行較大轉換的一部分期間,我想訪問用於從crm獲取數據的http端點,檢索第二組數據並對其進行處理。 我可以通過DefaultEndPointFactory獲取端點,如下所示:
DefaultEndpointFactory def = new DefaultEndpointFactory();
def.getInboundEndpoint("uri").getConnector;
但實際上沒有辦法發送mulemessage。
解決: 問題是您無法在MuleMessage上設置入站屬性,並且流程取決於其中一些要運行的(路徑,查詢參數等)。
您似乎可以使用以下方法來入站作用域屬性:
m.setProperty("test", (Object)"test", PropertyScope.INBOUND);
有沒有辦法讓這種方法有效,或者是另一種訪問流程的方法? 我嘗試使用mulecontext來獲取流量:
muleContext.getRegistry().lookupFlowConstruct("myflow");
但它沒有任何看起來有用的東西。
解決方案:正如David Dossot在他的回答評論中建議的那樣,我能夠用muleClients request
方法來解決這個問題。
muleContext.getClient().request(url, timeout);
然后像往常一樣用GET參數等構建url。
我不是100%肯定你想要實現的目標,但無論如何,從Java代碼使用Mule傳輸的正確方法是使用MuleClient ,您可以使用muleContext.getClient()
訪問它。
例如, send
方法允許您傳遞自動添加到入站范圍的屬性映射。 在幕后,Mule負責創建操作所需的端點。
關於流程:你想用它做什么? 調用它?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.