2012-05-10 9 views
5

मैं वसंत डीएसएल में विधेय उदाहरण given निम्नलिखित कैसे लागू कर सकते हैं:कैमल विधेय उदाहरण एक्सएमएल डीएसएल में

Predicate isWidget = header("type").isEqualTo("widget"); 

from("jms:queue:order") 
    .choice() 
     .when(isWidget).to("bean:widgetOrder") 
     .when(isWombat).to("bean:wombatOrder") 
    .otherwise() 
     .to("bean:miscOrder") 
    .end(); 

उत्तर

4
इस तरह

:

<route> 
    <from uri="jms:queue:order"/> 
    <choice> 
    <when> 
     <simple>${header.type} == 'widget'</simple> 
     <to uri="bean:widgetOrder"/> 
    </when> 
    <when> 
     <simple>${header.type} == 'wombat'</simple> 
     <to uri="bean:wombatOrder"/> 
    </when> 
    <otherwise> 
     <to uri="bean:miscOrder"/> 
    </otherwise> 
    </choice> 
</route> 
+0

स्प्रिंग एप्लिकेशन संदर्भ में हेडर में नाम विशेषता नहीं है और बिल्कुल मौजूद नहीं है। –

+0

आपका ऊंट और वसंत संस्करण क्या है? –

+0

वैसे भी आप भविष्यवाणी के बजाय में इसे आजमा सकते हैं: $ {header.type == 'wombat'}

6

आवश्यक सरल तत्व (accepted answer देखें)

है
<simple>${header.type} == 'widget'</simple> 

ध्यान दें कि फ़ील्ड अभिव्यक्ति $ {} से घिरा हुआ है, उसके बाद ओ तुलना के लिए जीएनएल वाक्यविन्यास, जो फ़ील्ड अभिव्यक्ति का हिस्सा नहीं है।

+1

$ {header.type == 'विजेट'} काम नहीं करता है। धीरज द्वारा वर्णित $ {header.type} == 'विजेट' का उपयोग करें। – jaks