2016-04-22 105 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"/> 

和它的工作。