2012-03-09 24 views
36

मैं अपाचे कैमल के लिए नया हूं। क्या कोई समझा सकता है कि ऊंट में "प्रत्यक्ष: प्रारंभ" का अर्थ क्या है। कृपया देखेंअपाचे कैमल: "प्रत्यक्ष: प्रारंभ करें" एंडपॉइंट - इसका क्या अर्थ है?

http://camel.apache.org/http

from("direct:start") 
.to("http://myhost/mypath"); 

धन्यवाद।

+0

कृपया ध्यान दें कि यदि आप ऊंट शुरू होने पर एक बार चलाने के लिए मार्ग की तलाश में हैं, तो "प्रत्यक्ष: प्रारंभ करें" वह नहीं है जिसे आप ढूंढ रहे हैं - अधिक जानकारी: http://stackoverflow.com/questions/7714211/apache -कैमेल-ट्रिगरिंग-ए-टास्क-ऑन-स्टार्टअप-टू-रन-केवल-एक बार – vikingsteve

उत्तर

40

उपरोक्त "प्रत्यक्ष: प्रारंभ" बस यह कह रहा है कि मार्ग Direct Component "प्रारंभ" नाम से शुरू होता है।

प्रत्यक्ष अंतराल मार्ग के तुल्यकालिक आमंत्रण प्रदान करता है। यदि आप सीधे Exchange भेजना चाहते हैं: एंडपॉइंट शुरू करें तो आप ProducerTemplate बनाएंगे और विभिन्न प्रेषण विधियों का उपयोग करेंगे।

ProducerTemplate template = context.createProducerTemplate(); 

template.sendBody("direct:start", "This is a test message"); 

start नाम के बारे में कुछ खास नहीं है। यह केवल वह नाम है जिसका उपयोग आप अंतराल का जिक्र करते समय उपयोग करने जा रहे हैं और direct:foo जितना आसानी से हो सकता था।

+1

धन्यवाद। यह अभी भी मुझे स्पष्ट नहीं है। मुझे ज्यादा केंद्रित होना चाहिए। क्या "प्रारंभ" का एक विशेष अर्थ है या यह एक मनमाना स्ट्रिंग "foo" या "someelse" हो सकता है? दूसरा - मैंने ऊपर पोस्ट किए गए HTTP उदाहरण के संदर्भ में इसका क्या अर्थ है? एक बार फिर धन्यवाद। –

+0

कोई विशेष अर्थ नहीं। यह वह नाम है जिसका आप अंत बिंदु को संदर्भित करने के लिए उपयोग करने जा रहे हैं। यह आसानी से "प्रत्यक्ष: foo" हो सकता था। – gregwhitaker

+0

यहां [लिंक से डायरेक्ट] है (http://camel.apache.org/direct.html) ऊंट साइट –

2

सीधा: प्रारंभ 2 अंतराल के बीच संवाद करने के लिए सिंक्रोनस तरीके प्रदान करता है और इसका उपयोग केवल तभी किया जाता है जब आप ऊंट संदेशों का उपयोग करके संवाद करना चाहते हैं, सामान्य फ़ाइल या एक्सएमएल संदेश नहीं।

3

नाम शुरू करने के साथ एक विधि के रूप में प्रत्यक्ष मार्ग की तरह मानें, इसलिए हमें कुछ ऑपरेशन करने के लिए प्रारंभ विधि/प्रत्यक्ष मार्ग पर कॉल करने की आवश्यकता है। नीचे दिया गया उदाहरण मदद करेगा।

पहला मार्ग तब ट्रिगर किया जाएगा जब XXXX स्थान पर इनपुट फ़ाइल उपलब्ध हो और जब यह लाइन तक पहुंच जाए, तो वास्तविक प्रवाह दूसरे मार्ग पर जाएगा। मूल रूप से एंडपॉइंट से सीधे मार्ग कुछ उत्पादक एंडपॉइंट द्वारा ट्रिगर किया जाएगा।

<route id="fileRoute"> 
    <from uri="file:XXXX"> 
     .. 
    <to uri="direct:start"> 
</route> 

<route id="directStartRoute"> 
    <from uri="direct:start"> 
    <to uri="http://myhost/mypath"> 
</route> 
3

अपाचे कैमल प्रत्यक्ष वही कैमल संदर्भ में एक से दूसरे मार्ग से Exchange भेजने के लिए मूल रूप से है। तो मान लें कि आपको एएमक्यू से संदेश मिल रहा है और आप जो भी संदेश प्राप्त करते हैं उसके लिए हेडर को पॉप्युलेट करना चाहते हैं और फिर इसे मेल प्राप्तकर्ता सूची में भेजना चाहते हैं। तो यहाँ आप नए रूटर बनाने के लिए जो वर्णन

from(“direct:populateHeaders”) 
.setHeader(“myHeader”, “myHeaderValue”) 
.end() 

निम्नलिखित है और किसी भी मार्ग से आप

... 

.to(“direct:populateHeaders”) 

... 

इसकी महत्वपूर्ण लेखन है कि इस होगा ध्यान में रखने के द्वारा इस मार्ग के लिए अपने Exchange वस्तु भेज सकते हैं की जरूरत है अपने ऊंट संदर्भ से बाहर काम नहीं करते हैं।