2013-03-10 2 views
0

, 내 구성 XML 파일에 다음 줄을 추가흐름 제어 선택 라우터는 노새 3.3.0 CE에서

<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> 

내 프로젝트를 실행하고 thisurl를 입력 : 로컬 호스트 : 8081/우선 순위 또는 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 

이 문제를 어떻게 해결할 수 있습니까?

답변

2

문제는 표정으로 한 다음 시도 할 수 있습니다 :

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

또한 평가자로 현재 그루비를 사용하고 있지만, 지금까지 노새 3.3 MEL 사용이 매우 권장 때문이다.