2016-04-22 150 views
0

我對mule非常陌生,並且正在使用mule進行動態路由。在運行時,我得到我的服務託管的端口號。mule中的動態路由

請在下面找到我的代碼:

<script:component doc:name="Script"> 
    <script:script engine="groovy"> 
     <![CDATA[ 
     String endpnt = reqUrl.prepareFile(requestUrl); 
     message.setProperty('port', reqUrl.getPort(),org.mule.api.transport.PropertyScope.INVOCATION); 

     ]]> 
    </script:script> 
    </script:component> 

<logger message="#[flowVars['port']]" level="INFO" doc:name="port" /> 

     <http:request config-ref="FlowRef" 
        path="/subflow" method="GET" doc:name="Invoke Dynamic service" /> 

以上腳本返回我在該服務託管的端口號,並使用

<flow name="testFlow1"> 
    <http:listener config-ref="BaseRef" path="/subflow" 
     doc:name="Eval" /> 
    <logger message="calling testFlow1 service" level="INFO" doc:name="Logger" /> 

    <http:request config-ref="ServiceMonProxy1" path="/" 
     method="GET" doc:name="Credit validation"/> 
</flow> 

的問題我調用相同是"#[flowVars['port']]"沒有得到解決在運行時和騾是拋出一個異常,說不正確的端口

請協助。

回答

0

試着在你的腳本返回消息:

<script:component doc:name="Script"> 
<script:script engine="groovy"> 
    <![CDATA[ 
    String endpnt = reqUrl.prepareFile(requestUrl); 
    message.setProperty('port', reqUrl.getPort(),org.mule.api.transport.PropertyScope.INVOCATION); 
    return message; 
    ]]> 
</script:script> 

希望它能幫助。

/Tony

+0

我能夠獲得該值,但mule無法在運行時解析相同的值。 –

+0

請問您能顯示配置參考嗎? –

+0

打印端口的值,但在

0

找到了答案。請找到下面的代碼

剛剛更換

<http:request config-ref="FlowRef" 
       path="/subflow" method="GET" doc:name="Invoke Dynamic service" /> 

<http:outbound-endpoint exchange-pattern="request-response" host="localhost" port="#[flowVars['port']]" path="a" doc:name="HTTP"/> 

和它的工作。