2008-12-02 11 views
33

आरईएसटी का हर ट्यूटोरियल या स्पष्टीकरण बहुत जटिल हो जाता है - सीआरयूडी की शुरुआती स्पष्टीकरण और एसओएपी पर अनुमानित सादगी के बाद सीखने की वक्र इतनी तेजी से बढ़ जाती है। लोग अब सभ्य ट्यूटोरियल क्यों नहीं लिख सकते हैं!जावा के लिए कोई आसान आरईएसटी ट्यूटोरियल?

मैं रेस्टलेट को देख रहा हूं - और यह सबसे अच्छा नहीं है, ट्यूटोरियल में चीजें गायब हैं और भाषा/व्याकरण थोड़ा भ्रमित और अस्पष्ट है। यह मुझे घंटे लगे है उनके पहला कदम ट्यूटोरियल सुलझाना

RESTlet ट्यूटोरियल टिप्पणियाँ

कुल मिलाकर मैं बिल्कुल यकीन नहीं है जो ट्यूटोरियल के उद्देश्य से किया गया था (एक और जावा प्रोग्रामर की मदद से!) - क्योंकि वहाँ पूरे दौर में ज्ञान प्राप्त ज्ञान की एक उचित डिग्री है, इसलिए आरईएसटी और रीस्टलेट फ्रेमवर्क में आने से ठंड आपको कई 'पकड़ने के काम' के साथ छोड़ देती है, और फिर से अनुच्छेदों को फिर से पढ़ती है।

  1. हम बाहर काम कर रहा है कि जार सही lib फ़ोल्डर में नकल में होना था कठिनाई थी। web.xml एक HTTP स्थिति 500 ​​त्रुटि बनाने के साथ

  2. समस्या -

सर्वर,() है कि यह से रोका इस अनुरोध

को पूरा करने के लिए एक आंतरिक त्रुटि आई ट्यूटोरियल कहता है:

"सामान्य रूप से एक नया सर्वलेट वेब अनुप्रयोग बनाएं, " com.firstStepsServlet "पैकेज जोड़ें और संसाधन और एप्लिकेशन कक्षाएं डाल दें।"

इसका मतलब है कि अपनी कक्षा FirstStepsApplication के लिए अपनी पूरी तरह से योग्य नाम com.firstStepsServlet.FirstStepsApplication है, इसलिए हम सही वर्ग जैसे उल्लेख करने के लिए web.xml को बदलना पड़ा:

मूल:

<param-value> 
     firstStepsServlet.FirstStepsApplication 
</param-value> 

होना चाहिए:

<param-value> 
     com.firstStepsServlet.FirstStepsApplication 
</param-value> 

निष्कर्ष

मैं धारणा है कि बाकी की अवधारणाओं सोप तुलना में बहुत सरल होना चाहिए थे तहत किया गया था - लेकिन यह बस के रूप में करता है, तो और अधिक जटिल नहीं बुरा लगता है - यह बिल्कुल नहीं मिलता ! grrrr

कोई भी अच्छा लिंक - बहुत सराहना की।

+6

ओह, कैसे मैं अपने दर्द महसूस हो रहा है! निश्चित रूप से एक वोट वोट! – BobbyShaftoe

+0

http://stackoverflow.com/questions/1710199/which-is-the-best-java-rest-api-restlet-or-jersey देखें और विचार करें कि यह एक सटीक डुप्लिकेट है या नहीं। – ripper234

+1

मैं आपसे सहमत हूं! एक सोचता है कि रीस्टलेट जैसी एपीआई आपको "मदद" करेगी। मैं रीस्टलेट आर्किटेक्चर को समझने के लिए एक समय में एक साधारण वेब सेवा ढांचा लिख ​​सकता हूं। – Spider

उत्तर

9

ऐसा लगता है कि आप आरईएसटी के मूलभूत सिद्धांतों की ठोस समझ का उपयोग कर सकते हैं, और इसके लिए मैं अत्यधिक लियोनार्ड रिचर्डसन और सैम रूबी द्वारा RESTful Web Services की अनुशंसा करता हूं।मैं आरईएसटी के लिए एक महान परिचय प्रदान करता हूं: यह क्या है और एक (व्यावहारिक) रीस्टफुल वेब सेवा को कैसे कार्यान्वित किया जाए।

पुस्तक में उदाहरण कोड के अधिकांश वास्तव में रूबी है, लेकिन यह आसान भी समझने के लिए काफी है कि यदि आप एक रूबी विशेषज्ञ नहीं हैं। लेकिन एक चीज जो आपको विशेष रूप से मदद करनी चाहिए वह है कि किताब के बाद के अध्यायों में से एक में रीस्टलेट समेत कई पुनर्निर्मित ढांचे के अवलोकन शामिल हैं। यह वास्तव में किसी भी कोड में नहीं मिलता है (यह 50,000 फुट का फ्लाईओवर है) लेकिन मुझे लगता है कि यह आपको इस चरण में केवल वही देगा जो आपको चाहिए।

+2

काफी हद तक मैंने आपके पोस्ट को पढ़ने से पहले अमेज़ॅन पर रीस्टफुल वेब सर्विसेज का आदेश दिया है। आपकी बहुमूल्य टिप्पणियों के लिए भी धन्यवाद। – Vidar

14

आप ठीक वर्णन किया जा सका क्या आप हमारी Restlet ट्यूटोरियल में मुसीबतों की वजह से? हमें क्या जरूरत है इसे ठीक करने/सुधारने में रुचि है।

क्या आपने स्क्रीनकास्ट की जांच की? http://www.restlet.org/community/lists

बेस्ट: http://www.restlet.org/documentation/1.1/screencast/

अन्यथा, वहाँ है ओ रेली किताब है कि हम अपने अध्याय में लिखा है में एक Restlet ट्यूटोरियल 12.

आप अभी भी मुसीबतों हैं, तो हमारे मेलिंग सूची से संपर्क करें सादर, जेरोम Louvel

Restlet ~ संस्थापक और लीड डेवलपर ~ http://www.restlet.org Noelios टेक्नोलॉजीज ~ सह संस्थापक ~ http://www.noelios.com

+1

कृपया मेरे प्रश्न - चीयर्स में मेरे नए संपादन देखें। – Vidar

2

आप web.xml के अंदर एक त्रुटि को इंगित करते हैं, लेकिन मैंने अभी रीस्टलेट 1.0 और 1.1 दस्तावेज़ दोनों में चेक किया है, और मुझे इस तरह की त्रुटि दिखाई नहीं दे रही है। मैं यह उल्लेख करना चाहता हूं कि आप पृष्ठ के अंत में एक ज़िप जिसमें पूर्ण युद्ध फ़ाइल और स्रोत फ़ाइलों की सूची शामिल हो, यदि आप "स्टैंडअलोन" मोड में चलाना चाहते हैं। क्या आपने स्टैंडअलोन मोड का प्रयास किया था? जैसा कि ट्यूटो में बताया गया है, आपको क्लासपाथ में केवल 2 जार और स्रोत फाइलों की आवश्यकता है।

हम यह भी इंगित करना चाहते हैं कि "फर्स्टस्टेप्स" ट्यूटोरियल आरईएसटी पर एक ट्यूटोरियल नहीं है लेकिन रीस्टलेट के साथ प्रोग्रामेशन पर है। आप "फर्स्ट रिसोर्स" ट्यूटोरियल (http://www.restlet.org/documentation/1.1/firstResource) पर भी एक नज़र डाल सकते हैं जो वर्णन करता है कि एक सरल संसाधन कैसे विकसित किया जाए और जो आरईएसटी आर्किटेक्चर शैली की कुछ अवधारणाओं को प्रस्तुत करता है। यह आपकी मदद करनी चाहिए।

1

इसके अलावा, योग्य में सुझाव दिया नाम ट्यूटोरियल वास्तव में "firstStepsServlet.FirstStepsAplication" है और नहीं "com.firstStepsServlet.FirstStepsAplication"।

इसलिए, web.xml में सुझाव दिया परम मूल्य सही है।

आप इस बात की पुष्टि कर सके कि यह आपकी समस्या ठीक हो? साथ ही, क्या आपके पास ट्यूटोरियल पढ़ने से पहले सर्वलेट परिनियोजन ज्ञान था? यदि नहीं, तो दर्द की व्याख्या होगी। इस मामले में, स्टैंडअलोन मोड शायद एक बेहतर फिट है।

+0

मेरी पोस्ट में मेरे नए संपादन देखें – Vidar

+0

हमने टाइपो को ठीक किया है। ध्यान दें कि पहले चरण और प्रथम संसाधन पृष्ठ के अलावा, जो आपको जल्दी से शुरू करने के लिए माना जाता है, वहां एक और अधिक डिटेल्ड ट्यूटोरियल है जो आपको आरईएसटी और रीस्टलेट की विभिन्न अवधारणाओं के माध्यम से चलाएगा: http://www.restlet.org/documentation/1.1/ट्यूटोरियल –

-2

eSoftHead कंपनी ने RESTeasy का उपयोग करके आराम से अनुप्रयोग विकसित करने के लिए short tutorial जारी किया है।

6

रेस्टलेट ढांचा चार मुख्य भागों से बना है।

1. Restlet एपीआई

सबसे पहले, "Restlet एपीआई", एक तटस्थ बाकी की अवधारणाओं का समर्थन करने और दोनों क्लाइंट-साइड और सर्वर-साइड अनुप्रयोगों के लिए कॉल की हैंडलिंग की सुविधा एपीआई। इस एपीआई को रीस्टलेट इंजन द्वारा समर्थित किया गया है और दोनों अब एक एकल JAR ("org.restlet.jar" में भेजे गए हैं)।

एपीआई और कार्यान्वयन के बीच यह अलगाव जेटलेट या टॉमकैट जैसे वेबलेट कंटेनर या जेडीबीसी एपीआई और कंक्रीट जेडीबीसी ड्राइवरों के बीच एक के समान है।

2. किसी वेब पेज

की सामग्री प्राप्त कर रहा है हम परिचय पत्र में उल्लेख किया है, Restlet ढांचा एक ही समय एक ग्राहक और एक सर्वर ढांचे पर है। उदाहरण के लिए, रीस्टलेट अपने HTTP क्लाइंट कनेक्टर का उपयोग कर दूरस्थ संसाधनों के साथ आसानी से काम कर सकता है। आरईएसटी में एक कनेक्टर एक सॉफ्टवेयर तत्व है जो घटकों के बीच संचार को सक्षम बनाता है, आमतौर पर नेटवर्क प्रोटोकॉल के एक तरफ लागू करके। रीसेट वर्तमान ओपन-सोर्स प्रोजेक्ट्स के आधार पर क्लाइंट कनेक्टर के कई कार्यान्वयन प्रदान करता है। कनेक्टर अनुभाग सभी उपलब्ध क्लाइंट और सर्वर कनेक्टर सूचीबद्ध करता है और उन्हें बताता है कि उन्हें कैसे उपयोग और कॉन्फ़िगर किया जाए।

// Outputting the content of a Web page 
new ClientResource("http://").get().write(System.out); 

ध्यान दें कि उपरोक्त उदाहरण ClientResource वर्ग के माध्यम से कॉल जारी करने के लिए एक सरल तरीका है का उपयोग करता है:

यहाँ हम एक मौजूदा संसाधन और JVM कंसोल में यह उत्पादन के प्रतिनिधित्व मिल जाएगा। यदि आपको बहु-थ्रेडिंग या अधिक नियंत्रण की आवश्यकता है तो क्लाइंट कनेक्टर क्लास या का उपयोग करने में अभी भी संभव है, ऑब्जेक्ट्स सीधे अनुरोध करें। एक संदर्भकर्ता यूआरआई की तरह, अपने ग्राहक कॉल में कुछ वरीयताओं को सेट करने के तरीके के नीचे नीचे दिया गया उदाहरण। यह भी भाषाओं और मीडिया प्रकार आप एक प्रतिक्रिया के रूप में प्राप्त करने के लिए पसंद करते हैं हो सकता है:

// Create the client resource 
ClientResource resource = new ClientResource("http://www.restlet.org"); 

// Customize the referrer property 
resource.setReferrerRef("http://www.mysite.org"); 

// Write the response entity on the console 
resource.get().write(System.out); 

3. वेब ब्राउज़र

अब की सुनकर, हम देखना चाहते हैं कि Restlet ढांचे ग्राहक को सुन सकते हैं चाहते हैं अनुरोध और उन्हें जवाब। हम आंतरिक Restlet HTTP सर्वर कनेक्टर का उपयोग करेगा (हालांकि यह इस तरह Mortbay के घाट के आधार पर एक के रूप में दूसरों के लिए स्विच करने के लिए संभव है) और एक साधारण स्ट्रिंग प्रतिनिधित्व "हैलो दुनिया" वापस सादे पाठ के रूप। ध्यान दें कि Part03 वर्ग आधार ServerResource Restlet द्वारा प्रदान की कक्षा लागू होता है:

public class Part03 extends ServerResource { 

    public static void main(String[] args) throws Exception { 
     // Create the HTTP server and listen on port 8182 
     new Server(Protocol.HTTP, 8182, Part03.class).start(); 
    } 

    @Get 
    public String toString() { 
     return "hello, world"; 
    } 

} 

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

अब तक, हम ज्यादातर आप Restlet एपीआई में अमूर्त के उच्चतम स्तर से पता चला है ClientResource और ServerResource वर्गों के साथ। लेकिन जैसे ही हम आगे बढ़ते हैं, आप पाएंगे कि उन दो वर्गों को एक समृद्ध एपीआई द्वारा समर्थित किया जाता है, जिससे आप सभी आरईएसटी कलाकृतियों में हेरफेर कर सकते हैं।

4. एक बाकी वास्तुकला

आइए कदम पीछे एक छोटे और देखने के एक बिंदु से बाकी पर सामान्य वेब आर्किटेक्चर पर विचार का अवलोकन। नीचे दिए गए आरेख में, बंदरगाह कनेक्टर का प्रतिनिधित्व करते हैं जो बड़े बक्से द्वारा प्रदर्शित घटकों के बीच संचार को सक्षम बनाता है।

1

यहाँ बाकी पर एक अच्छी तरह से लिखा ट्यूटोरियल है .. http://rest.elkstein.org/2008/02/what-is-rest.html

+0

जबकि यह सैद्धांतिक रूप से प्रश्न का उत्तर दे सकता है, [यह बेहतर होगा] (http://meta.stackexchange.com/q/8259) यहां उत्तर के आवश्यक हिस्सों को शामिल करने के लिए, और संदर्भ के लिए लिंक प्रदान करें। – Jack

संबंधित मुद्दे