2016-04-22 7 views
0

Я довольно новичок в 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"/> 

, и она работала.

 Смежные вопросы

  • Нет связанных вопросов^_^