मैं चाहता हूँ में जावा डीएसएल च्वाइसऊंट एक विकल्प
_ from(A)
_ .split()...
_ .choice() //Choice 1
_ .when(predicate)
_ .process()
_ .choice() // Choice 2
_ .when(x)
_ .to(X)
_ .otherwise()
_ .to(Y)
_ .end() // to terminate inner choice
_ .endchoice() // tell camel we're back in the outer-choice - gets exception
_ .otherwise() // Choice 1
_ .to(Z)
_ .end()
के लिए, लेकिन मैं endChoice()
java.lang.ClassCastException: org.apache.camel.model.SplitDefinition cannot be cast to org.apache.camel.model.ChoiceDefinition
मैं बिना यह
मैं टाइम त्रुटि संकलन मिल पर क्रम अपवाद संदिग्ध अंत() आंतरिक और बाहरी पसंद को समाप्त कर रहा है, मैं केवल इसे आंतरिक को समाप्त करना चाहता हूं।
अंत में डालने से नहीं() यह दूसरे विकल्प() को आंतरिक पसंद के विस्तार के रूप में बनाता है। जो यह नहीं है
मुझे दूसरी पसंद को उप-मार्ग और "प्रत्यक्ष: SUB_ROUTE" में डालकर कामकाज मिल गया है, लेकिन मैं उस सादे संरचना का उपयोग करना पसंद करूंगा जो मैंने ऊपर उल्लिखित किया है। क्या विकल्पों में विकल्पों को हासिल करने का कोई तरीका है या क्या यह जावा डीएसएल की एक सीमा है?
मैंने सोचा कि एंडचॉइस() केवल एक विकल्प की एक शाखा समाप्त कर चुका है और अंत() ने पूरी संरचना समाप्त कर दी है। मैं कोशिश करूँगा –
हम्म, कोशिश की और यह ठीक काम किया। अनुमान है कि मुझे endChoice() –
समझ में नहीं आया कृपया संदर्भ के लिए समाधान का कोड सबमिट करें – TecHunter