2014-04-07 121 views
0

im試圖建立一個應用程序,根據其值改變URL。 代碼我到目前爲止是:使用Mule更改網址屬性值

<flow name="CalculadoraHttpsSoap12Endpoint" doc:name="CalculadoraHttpsSoap12Endpoint"> 
    <http:inbound-endpoint exchange-pattern="request-response" address="${serverName}/Calculadora/services/Calculadora.CalculadoraHttpsSoap12Endpoint/" connector-ref="" doc:name="HTTP"/> 
    <http:outbound-endpoint address="${targetServer4}/Calculadora/services/Calculadora.CalculadoraHttpsSoap12Endpoint/" exchange-pattern="request-response"/> 
</flow> 

這個代碼只從$ {} SERVERNAME得到/Calculadora/services/Calculadora.CalculadoraHttpsSoap12Endpoint信息,並將其發送至$ {} targetServer4/Calculadora /服務/ Calculadora。 CalculadoraHttpsSoap12Endpoint /但即時消息試圖做的是,如果某些消息是$ {serverName} /Calculadora/services/Calculadora.CalculadoraHttpsSoap12Endpoint?att=1234將其更改爲$ {serverName} /Calculadora/services/Calculadora.CalculadoraHttpsSoap12Endpoint?att1=4567併發送它到出境地點,任何線索或文章如何做到這一點?

騾子版本3.4.0

回答

1

你可以得到查詢字符串,並定義變量:

<set-variable variableName="myAtt" value="#[message.inboundProperties['http.query.string'] == 'att=1234' ? '?att1=4567' : '']"/> 
<set-variable variableName="myUrl" value="#[message.inboundProperties['http.query.string'] == 'att=1234' ? 'localhost' : '${targetServer4}']" /> 

<http:outbound-endpoint address="http://#[myUrl]/somepath/#[myAtt]" exchange-pattern="request-response"/> 
+0

嗨一些答案的工作得很好,但現在我的意思是,我可以設置一個變量,甚至讓它進入我的出站網址,如何將其值更改爲合適的值,例如,myAtt ='att1 = 1234&att2 = 5678'現在將其更改爲myAtt ='att1 = asdf&att2 = brdt'併發送它? –

+0

對不起,我沒跟着你。我的示例基於入站'att = 1234'參數動態設置值。這是原來的問題,對吧?如果你的查詢字符串是其他的東西,比如'att1 = 1234&att2 = 5678',只需在我的例子中替換字符串。如果您想要更復雜的東西,請相應地更新您的原始問題。 –

+0

那麼,我認爲它的工作,我只需要使用表達式組件,除了設置變量和它的所有工作,tyvm :) –