маршрутизатор выбора управления потоком

В mule 3.3.0 CE я добавляю следующие строки в XML-файл конфигурации:

<flow name="muleService" doc:name="muleService">
<http:inbound-endpoint exchange-pattern="request-response" host="localhost" port="8081" doc:name="HTTP"/>
<choice doc:name="Choice">
    <when expression="payload.get('type') == 'normal'" evaluator="groovy">
        <processor-chain>
            <component class="com.mule.routing.routingClass1" doc:name="Java"/>
        </processor-chain>
    </when>
    <when expression="payload.get('type') == 'priority'" evaluator="groovy">
        <processor-chain>
            <component class="com.mule.routing.routingClass2" doc:name="Java"/>
        </processor-chain>
    </when>
    <otherwise>
        <processor-chain>
            <component class="com.mule.routing.routingClass1" doc:name="DefaultQueue"/>
        </processor-chain>
    </otherwise>        
</choice>

Когда я запускаю свой проект и ввожу этот URL-адрес: localhost: 8081/priority или localhost: 8081/normal, у меня возникает эта ошибка:

    javax.script.ScriptException: groovy.lang.MissingMethodException: No signature of method: java.lang.String.get() is applicable for argument types: (java.lang.String) values: [type]
Possible solutions: getAt(java.lang.String), grep(), next(), next(), getAt(groovy.lang.Range), getAt(groovy.lang.Range) (org.mule.api.MuleRuntimeException). Message payload is of type: String

Как я могу решить эту проблему?


person brelian    schedule 10.03.2013    source источник


Ответы (1)


Проблема с вашим выражением, попробуйте следующее:

expression="payload.equalsIgnoreCase('normal')"

Также в качестве оценщика вы в настоящее время используете Groovy, но начиная с mule 3.3 MEL использование настоятельно рекомендуется.

person genjosanzo    schedule 10.03.2013