जावा ईई 6 बनाम स्प्रिंग 3 स्टैक [बंद]


90

मैं अब एक नई परियोजना शुरू कर रहा हूं। मुझे तकनीकें चुननी होंगी। मुझे कुछ हल्का चाहिए, इसलिए कोई ईजेबी या सीम नहीं। दूसरी तरफ मुझे जेपीए (हाइबरनेट या वैकल्पिक) और जेएसएफ के साथ आइसफेसेस की आवश्यकता है।

क्या आपको लगता है कि टॉमकैट पर तैनात स्प्रिंग 3 पर इस तरह का स्टैक एक अच्छा विकल्प है? या एक जावा ईई 6 वेब एप्लिकेशन बेहतर हो सकता है? मुझे डर है कि जावा ईई 6 एक नई तकनीक है, जो अभी तक अच्छी तरह से प्रलेखित नहीं है। ग्लासफिश 3 की तुलना में टॉमकैट को बनाए रखना आसान है।

आपकी क्या राय है? क्या आपको कोई अनुभव है?


8
यदि आप प्रकाश चाहते हैं तो मैं IceFaces के बजाय Primefaces.org के लिए जाऊंगा । यह बहुत तेज़ है और एक दुबला आपी है।
शेरविन असगरी

1
वर्तमान में केवल ग्लासफिश जेईई 6 प्रदान कर रहे हैं। राल धीरे-धीरे जेईई 6 वेब प्रोफाइल को लागू कर रहा है , जो आपके लिए पर्याप्त हो सकता है जो आपके लिए आवश्यक है।
थोरबजोरन रावन एंडरसन

3
@ Thorbjørn यदि आप केवल वेब प्रोफ़ाइल चाहते हैं तो आप GlassFish v3 Web Profile का उपयोग कर सकते हैं।
पास्कल थिवेंट

@ पास्कल, यह विस्तार करना था कि जेईई 6 प्राप्त करने के लिए जल्द ही ग्लासफिश का एक विकल्प होगा यदि आप वेब प्रोफाइल (आई कैन) के साथ रह सकते हैं, तो यह कहने के लिए नहीं कि ग्लासफिश नहीं कर सकती।
थोरबजोर्न रेवन एंडरसन

@ Thorbjørn मैं @ Thorbjørn को दूर करना भूल गया :) टिप्पणी ओपी के लिए अभिप्रेत थी जो लगता है कि "फुल-स्टैक" GFv3 का उपयोग करना एकमात्र विकल्प है।
पास्कल थिवेंट

जवाबों:


101

मुझे कुछ हल्का चाहिए, इसलिए कोई ईजेबी या सीम नहीं।

क्या आप यह समझाने की परवाह करेंगे कि EJB3 के बाद से EJBs क्या भारी है? क्या आपको एहसास है कि हम 2004 में अब नहीं हैं? मैं वास्तव में प्रकाश की आपकी परिभाषा और आपके तर्कों को पढ़ना चाहूंगा (और मैं अपने उत्तर को आनंद से अपडेट करूंगा क्योंकि मुझे पूरा यकीन है कि मेरे पास कहने के लिए कुछ ठोस चीजें होंगी)।

दूसरी तरफ मुझे जेपीए (हाइबरनेट या वैकल्पिक) और जेएसएफ के साथ आइसफेसेस की आवश्यकता है।

जावा ईई 6 वेब प्रोफाइल जिसमें जेएसएफ 2.0, जेपीए 2.0, बीन वैलिडेशन, ईजेबी 3.1 लाइट, सीडीआई शामिल है, ... इसके लिए एकदम सही होगा और आप जावा ई 6 एस वेब प्रोफाइल के साथ बनाए गए एप्लिकेशन को चलाने के लिए ग्लासफिश वी 3 वेब प्रोफाइल का उपयोग कर सकते हैं। ।

क्या आपको लगता है कि टॉमकैट पर तैनात स्प्रिंग 3 पर इस तरह का स्टैक एक अच्छा विकल्प है? या एक जावा ईई 6 वेब एप्लिकेशन बेहतर हो सकता है?

खैर, मुझे अपने कोड को एक मालिकाना कंटेनर (स्प्रिंग) के बजाय एक गैर-मालिकाना मंच (जावा ईई) पर चलाने का विचार पसंद है । और मुझे लगता है कि जावा ईई 6 काफी अच्छा है (और यह एक व्यंजना है, ईजेबी 3.1 (लाइट), जेपीए 2.0, जेएसएफ 2.0, सीडीआई किक गधा)। ध्यान दें कि मैं एक JSF उलझन में था लेकिन मैंने एक दूसरा रूप लिया और CDI के साथ JSF 2.0 इतना अलग है कि मैं तुलना भी नहीं कर सकता। और अगर आपने सीडीआई को नहीं देखा, तो मैं आपको बता दूं कि यह चट्टानें हैं।

मुझे डर है कि जावा ईई 6 एक नई तकनीक है, जो अभी तक अच्छी तरह से प्रलेखित नहीं है।

जावा ईई मुझे अच्छी तरह से प्रलेखित दिखता है। यह दावा मुफ्त की तरह लगता है। और, मेरा विश्वास करो या नहीं, मुझे लगता है कि वसंत जटिल हो रहा है जबकि जावा ईई आसान हो रहा है।

ग्लासफिश 3 की तुलना में टॉमकैट को बनाए रखना आसान है।

क्या आपने कुछ कोशिश की? क्या आपको किसी विशेष समस्या का सामना करना पड़ा? फिर से, यह मुफ्त दावा जैसा लगता है।


2
मैं बस के बाद रेजर बिग प्रोजेक्ट EJB3.0 + सीम के साथ JBoss पर ड्रोल्स, ग्रेनाइट्स और कुछ और के साथ विकसित हुआ हूं। मैं सीवन चट्टानों से सहमत हूँ! लेकिन मैंने redeployement पर 50% developement खर्च किया, सर्वरों को फिर से शुरू करना, तैनाती त्रुटियों, अस्थायी निर्देशिकाओं को साफ करना आदि। दूसरी तरफ JBoss टूल का प्रदर्शन वास्तव में खराब था (मेरा वास्तव में मतलब है - ctrl + space और 10s हैंग होना) यह मुझे JEE6 का उपयोग करने के लिए हतोत्साहित करता है। जो सीम ढांचे से उधार की तरह दिखता है। के रूप में सर्वर के लिए मैं शंख पूजन, jndi, jms, jmx, कान चित्रण के बारे में सोचना नहीं चाहता। WAR को सेकंड में चलाने और चलाने के लिए मुझे कुछ चाहिए।
पियोट ग्विज्दा

6
@peperg Gaving King CDI (Weld the RI) का विशेष नेतृत्व है, इसलिए आपको सीम और CDI के बीच समानताएं मिलेंगी। लेकिन सीडीआई! = सीम, जावा ईई 6! = सीम, आपकी धारणा गलत है। शायद GlassFish v3 वेब प्रोफ़ाइल आज़माएं, आप आश्चर्यचकित हो जाएंगे (और एक बार कनेक्शन पूल परिभाषित होने के बाद, चिंता करने के लिए बहुत कुछ नहीं है)।
पास्कल थिवेंट

8
EJBs को भारी कहने वाले लोगों के साथ यह क्या है? मैं EJB v3.1 का उपयोग कर रहा हूं और वे केवल एनोटेट पोज हैं। जब वे कहते हैं कि प्रदर्शन में उनका क्या मतलब है या क्या है?
arg20

13
@ arg20 - यह वास्तव में बड़ा सवाल है और पास्कल ने इस संदर्भ में "भारी" (या "प्रकाश") शब्द का अर्थ बताने के लिए सही तरीके से पूछा है। सबसे अधिक संभावना है कि यह वसंत और ईजेबी के बीच पुराने झगड़े का शेष है। शुरुआती दिनों में, EJB1 और 2 वैचारिक रूप से भारी थे। रीमोटिंग और स्टेटफुल बीन्स पर एक ओवरमेन्फिस, एक हास्यास्पद रूप से एक्सएमबी तैनाती डिस्क्रिप्टर और लागू होने के लिए आवश्यक इंटरफेस की पूरी तरह से पागल राशि ने उन्हें बहुत खराब प्रतिष्ठा दी। EJB3 (2006) के साथ यह पूरी तरह से बदल गया है, लेकिन वसंत के लिए 2004 में EJB को छोड़ने वाले लोग कभी-कभी सोचते हैं कि इसका 2004 और EJB2 नवीनतम है।
अर्जन टिजम्स

7
ध्यान दें कि स्प्रिंग के बारे में पेज पर लिखा है कि "हमें विश्वास है कि: J2EE का उपयोग करना आसान होना चाहिए"। ध्यान दें कि वे "J2EE" शब्द का उपयोग करते हैं न कि "Java EE", जो जावा EE 5 (मुझे लगता है) के रिलीज़ होने के बाद से सही नाम है। यह उनके बारे में बहुत कुछ कहता है ...
वीटर ई। सिल्वा सूजा

32

मैंने JavaEE6 का उपयोग नहीं किया है।

हालाँकि, मुझे JavaEE और EJB के पिछले सभी संस्करणों द्वारा बुरी तरह से पीटा गया है कि मुझे इस पर तब तक भरोसा नहीं होगा, जब तक कि यह केवल वास्तविक मानक के रूप में स्थापित नहीं हो जाता। अभी, स्प्रिंग अभी भी वास्तविक मानक है।

फिर से मुझे बेवकूफ़ बनाया, शर्म आनी चाहिए तुम्हें। दो बार बेवकूफ़ बना, यह शर्म की बात है। मूर्ख मुझे तीन बार, EJB।

कुछ लोग दावा करेंगे कि वसंत मालिकाना है। मैं तर्क दूंगा कि JavaEE स्पेक्स के वेंडर क्रियान्वयन सिर्फ मालिकाना के रूप में हुए हैं, यदि ऐसा नहीं है।

मैं हाल ही में JBoss से वेबलॉजिक में जावा एप्लिकेशन के एक झुंड को स्थानांतरित करने के लिए एक प्रमुख रूपांतरण के माध्यम से गया था। सभी स्प्रिंग / हाइबरनेट ऐप्स को शून्य संशोधनों के साथ पोर्ट किया गया था, क्योंकि उनके पास उन सभी पुस्तकालयों की आवश्यकता थी जो वे निर्मित करते थे। जेपीए और ईजेबी और जेएसएफ का उपयोग करने वाले सभी ऐप पोर्ट के लिए एक आपदा थे। जेपीए, ईजेबी और जेएसएफ की व्याख्याओं के बीच सूक्ष्म अंतर ने सभी प्रकार के खराब कीड़े पैदा कर दिए जो हमेशा के लिए ठीक हो गए। यहां तक ​​कि जेएनडीआई नामकरण के रूप में कुछ भी सरल AppServers के बीच पूरी तरह से अलग था।

वसंत एक कार्यान्वयन है। JavaEE एक युक्ति है। यह एक बहुत बड़ा फर्क है। मैं एक कल्पना का उपयोग करना पसंद करूंगा यदि कल्पना 100% एयर-टाइट थी और विक्रेताओं ने उस कल्पना को लागू करने के तरीके में बिल्कुल कोई झालर वाला कमरा नहीं दिया। लेकिन JavaEE की युक्ति कभी नहीं रही। शायद JavaEE6 अधिक एयर-टाइट है? मुझे नहीं पता। जितना अधिक आप अपने WAR में पैकेज कर सकते हैं, और जितना कम आप AppServer पुस्तकालयों पर निर्भर करते हैं, उतना ही अधिक पोर्टेबल आपका आवेदन होगा, और, आखिरकार, यही कारण है कि मैं जावा का उपयोग करता हूं और डॉट-नेट का नहीं।

यहां तक ​​कि अगर कल्पना हवा-तंग थी, तो यह अच्छा होगा कि मैं अपने सभी अनुप्रयोगों में अपने सभी प्रौद्योगिकी के ढेर को अपग्रेड करने के साथ-साथ इसके साथ-साथ अपग्रेड करने में सक्षम हो। अगर मुझे JBoss 4.2 से JBoss 7.0 में अपग्रेड करना है, तो मुझे अपने सभी अनुप्रयोगों पर JSF के नए संस्करण के प्रभाव पर विचार करना होगा। मुझे अपने स्प्रिंग-एमवीसी (या स्ट्रट्स) अनुप्रयोगों पर प्रभाव पर विचार नहीं करना है।


1
वास्तव में, यह एक महान तर्क है।
पैलज़

1
मैं इस तर्क से सहमत हूं, मैंने कई समस्याओं का सामना किया है जो एक कंटेनर के एक कल्पना के कार्यान्वयन पर निर्भरता के साथ हैं। एम्बेडेड पुस्तकालयों से काफी कम दर्द। एक युक्ति की दार्शनिक वरीयता के बाहर, बहस करना मुश्किल है।
पीटर पोर्टर

अद्भुत तर्क। हालाँकि यह आपका अनुभव जेईई 6 के बाद भी है? मैं समझता हूं कि ऐनक के ऐप सर्वर कार्यान्वयन अभी भी एक दर्द हो सकता है - इसलिए ऐप सर्वर 1 द्वारा लागू किया गया एक ही चश्मा एक सरल और कुशल हो सकता है जबकि ऐप सर्वर 2 के लिए नहीं
सौम्या

1
+1। इसके अलावा, एप्लिकेशन सर्वर ऑपरेशंस शेड्यूल पर बदलता है, जहां डेवलपर्स के नियंत्रण में स्प्रिंग / हाइबरनेट होता है। एक बड़ी कंपनी के माहौल में अपर्चर को अपग्रेड करना बहुत बड़ी बात है।
नाथन ह्यूजेस

मुझे वास्तव में डॉट-नेट के बारे में बात नहीं मिली। यह स्प्रिंग जितना ही मालिकाना है और एक एकल विक्रेता द्वारा विकसित किया गया है जो कि माइक्रोसॉफ्ट है। कृपया इसे समझाया जा सकता है?
user1339260

23

इससे कोई फर्क नहीं पड़ता। जावा ईई 6 काफी अच्छा है और वहां प्रोफाइल के कारण, यह "भारी" नहीं है - आप सिर्फ वेब प्रोफाइल का उपयोग करेंगे।

व्यक्तिगत रूप से, मैं वसंत को पसंद करता हूं। लेकिन मैं जावा ईई 6 के खिलाफ तर्कसंगत तर्क से बाहर चल रहा हूं :)

(जैसा कि मैंने एक टिप्पणी से याद दिला रहा था - आप का प्रयास करना चाहें RichFaces , साथ ही ICEfaces और / या PrimeFaces - क्या घटकों आप की जरूरत के आधार पर)।


1
तो सवाल यह है: "क्या यह समझ में आता है कि फुल-स्टैक ग्लासफिश एप्लिकेशन सर्वर का उपयोग करना सिर्फ वेब प्रोफाइल का उपयोग करना है"?
पियोट ग्विजाडा

1
@peperg ग्लासफ़िश v3 वेब प्रोफ़ाइल का उपयोग करें यदि आप सिर्फ वेब प्रोफ़ाइल चाहते हैं, तो मेरा उत्तर देखें।
पास्कल थिवेंट

मैंने यहां कुछ तर्क पोस्ट किए हैं stackoverflow.com/questions/2822812/spring-3-0-vs-j2ee-6-0/… , बल्कि "इसे कैसे उत्पादन में लिया जाए" के दृष्टिकोण से लिया गया है। इसलिए हो सकता है कि आपके तर्कों को थोड़ा सा भर दिया जाए।
ओलिवर ड्रोट्बोहम

@peperq, JBoss 6 को छुट्टियों पर जारी किया गया था।
थोरबजोरन रेव एंडरसन

17

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

बॉक्स से बाहर निम्नलिखित विशेषताओं पर विचार करें: इवेंट मैनेजमेंट, कॉन्टेक्ट्स और DI, इंटरसेप्टर, डेकोरेटर्स, रेस्टफुल वेबसर्विसेज, एंबेडेबल कंटेनर के साथ एकीकृत परीक्षण, सुरक्षा, और बहुत कुछ।

मेरे अधिकांश परिणाम मेरे ब्लॉग में जावा ईई 6 की प्रमुख अवधारणाओं को स्पष्ट करते हुए प्रकाशित होते हैं जो आपको उपयोगी लग सकते हैं।

बेशक, ढांचा चुनने के लिए कोई कठिन और तेज़ नियम नहीं है। जावा ईई 6 सरल "वेब साइटों" के लिए अच्छी तरह से फूला हुआ हो सकता है, जिसके लिए एक समृद्ध संवादी सत्र राज्य की आवश्यकता नहीं होती है। आप ग्रेल्स या प्ले उठा सकते हैं! फ्रेमवर्क। लेकिन संवादी वेब अनुप्रयोगों के लिए, मैं एक बेहतर तर्क नहीं देख सकता कि क्यों जावा ईई 6 एक अच्छा फिट नहीं है।


जावा ईई 6 सिर्फ फ्रीकिन 'स्लो, ग्लासफिश और ग्लासफिश वेब प्रोफाइल है, जो जेटी / टॉमकैट / जो भी है उनसे तुलना करना शुरू करने के लिए वास्तव में धीमी है। परीक्षण, एम्बेड करने योग्य कंटेनर भी वास्तव में धीमा है।
पालेज

15

अब, कुछ समय बाद, मेरे पास स्टैक के साथ अनुभव है:

  • जावा ईई 5 + सीम + ग्रेनाइट + फ्लेक्स
  • स्प्रिंग 3 + वाडिन (जीडब्ल्यूटी पर)
  • स्प्रिंग 3 + जेएसएफ 2.0 (प्राइमफेस)

मेरे colclusions हैं:

  • स्प्रिंग 3 सीम (लगभग जावा ईई 6) की तुलना में बहुत सरल है और टॉमकैट और जेट्टी पर चलता है! (मावेन प्लगइन के साथ डेवेलपमेंट के लिए जेटी एक ट्रेज़र है)।
  • मैं फ्लेक्स से प्यार करता हूं (मैं वास्तव में लंबे समय से फ्लेक्स डेवलपर था इसलिए मैं पक्षपाती हूं) और अगर आपको समृद्ध इंटरफ़ेस की आवश्यकता है और फ्लैशब्यूलर का उपयोग कर सकते हैं, लेकिन इस विच स्प्रिंग + ग्रेनाइट्स या ब्लेज़ड्स बैकेंड का उपयोग करें। यदि आप FlashBuilder नहीं खरीद सकते हैं तो अपना समय बर्बाद न करें।
  • वाडिन महान है !. डेवलपमेंट की प्रक्रिया फ्लेक्स की तुलना में सरल है, लेकिन आप HTML मेस के बिना आसानी से समृद्ध एप्लिकेशन बना सकते हैं। आप एक जेएस लाइन नहीं लिख सकते। आपको बस कुछ सीएसएस की जरूरत है (फ्लेक्स में आपको इसकी भी आवश्यकता है)। इसलिए यदि आपका एप्लिकेशन इंटरफ़ेस डेस्कटॉप एप्लिकेशन की तरह व्यवहार करने वाला है और आप Flex (वाडिन) का उपयोग नहीं कर सकते (या नहीं करना चाहते हैं)। चेतावनी! Vaadin ब्राउज़र के लिए बड़ा JS ओवरहेड है।
  • यदि आप सरल वेबसाइट-जैसे एप्लिकेशन का उपयोग करते हैं JSF2.0 (ऊपर स्प्रिंग बैकेंड के साथ)। आपको HTML के साथ लड़ना होगा (मुझे इससे नफरत है) और समृद्ध इंटरफ़ेस बनाना वैदीन (विशेष रूप से लेआउट) की तुलना में कठिन होगा। आपको धीमे ब्राउज़रों / कंप्यूटर्स के लिए हल्के HTML मिलेंगे। मुझे प्राइमफेस पसंद है - यह आसान और अच्छी तरह से प्रलेखित है। दूसरे स्थान पर है IceFaces
  • यदि आप एक वेबसाइट बनाते हैं (वेब ​​एप्लिकेशन नहीं) तो आपको जीवन को HTML में डालने की आवश्यकता है (बजाय एंटरप्राइज़ एप्लिकेशन जो ब्राउज़र में फिट होती है) विकेट का उपयोग करें (यदि आप घटक आधारित, पुल रवैया पसंद करते हैं) या स्प्रिंगएमवीसी (यदि आप टेम्पलेट आधारित पसंद करते हैं) , धक्का रवैया) या बस प्ले का उपयोग करें! ढांचा। याद रखें कि समृद्ध डेटा-आधारित घटक बनाना बहुत कठिन होगा लेकिन आपको HTML के प्रत्येक टैग पर नियंत्रण होगा (आपका HTML / ग्राफ़िक्स डिज़ाइनर आपको बहुत पसंद आएगा)

21
मैं यह नहीं देखता कि आपका अपना प्रश्न कैसे संबंधित है ...
Pere Villega

1
-1 इस उत्तर को स्वीकार करना बहुत अनुचित लगता है, क्योंकि इसमें जावा ईई 6 का भी उल्लेख नहीं किया गया है। जवाब।
user359996

1
वास्तव में प्रश्न अधिक मान्य नहीं है। जेईई 6 अब बहुत परिपक्व है, यह मार्च 2010 में नहीं था जब सवाल पूछा गया था।
पियोट्र ग्विजाडा

@PiotrGwiazda ने तब से किस तरह से JEE 6 में बदलाव किया? लोग इसके बाद से अधिक डर गए थे, लेकिन यह मूल रूप से एक ही जेईई था 6.
यमजोरोस

1
मेरा मतलब था कि JEE6 कार्यान्वयन अधिक परिपक्व और उपलब्ध हैं। JBoss 7 अब स्थिर है और अधिक कार्यान्वयन उपलब्ध हैं। अब समुदाय भी बड़ा है। अधिक उपकरण और काम अब JEE 6 स्टैक का समर्थन करते हैं।
पायोत्र ग्विजाडा

8

एडम बिएन के एंटरप्राइज जावा के भविष्य को पढ़ें ... स्पष्ट है ( सिक्का के दोनों किनारों को प्राप्त करने के लिए टिप्पणियों सहित जावा ईई / स्प्रिंग और वाइस वर्सा के बिना) । मैं कई कारणों से वसंत का चयन करूंगा और उनमें से एक है (पोस्ट से टिप्पणियों में से एक को पुन: प्रस्तुत करना)

'मुझे यकीन नहीं है कि आप किस जावा ईई 6 सर्वर के बारे में बात कर रहे हैं। ग्लासफिश प्रमाणित और TMAX JEUS है। यह काफी समय लेगा (पढ़ें: साल) जब तक कि जावा ईई 6 वेबसेफर, वेबलॉजिक, जेबॉस आदि के अनुरूप संस्करण उत्पादन में नहीं हैं और इसका उपयोग वास्तविक एप्लिकेशन के लिए किया जा सकता है। स्प्रिंग 3 को केवल जावा 1.5 और जे 2 ईई 1.4 की आवश्यकता है ताकि लगभग सभी वातावरणों में आसानी से उपयोग किया जा सके '


6
हम लगभग एक साल बाद अब ठीक हैं और JBoss AS 6, जो जावा EE 6 का समर्थन करता है, वर्तमान में उत्पादन में उपयोग किया जा रहा है।
अर्जन टिजम्स

8

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

एक लंबी कहानी को छोटा करने के लिए, मैंने यह निष्कर्ष निकाला है कि इसे प्राप्त करने का सबसे अच्छा तरीका सूर्य विनिर्देशों के खुले स्रोत कार्यान्वयन का उपयोग करके कच्चे जेवीएम के नीचे सभी तरह से है।

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

सन स्पेसिफिकेशंस आमतौर पर बहुत सख्त होते हैं जिसका अर्थ है कि कल्पना के अनुरूप कार्यान्वयन को आसानी से इंटरचेंज किया जा सकता है। बस सर्वलेट कंटेनर पर एक नज़र है।

इस विशेष मामले में, मैं सुझाव दूंगा कि आप JavaServer Faces पर एक नज़र डाल सकते हैं क्योंकि यह Java EE 6 का हिस्सा है जिसका अर्थ है कि यह बहुत लंबे समय के लिए उपलब्ध और बनाए रखा जाएगा। फिर हमने MyFaces Tomahawk के साथ वृद्धि करने के लिए चुना है क्योंकि यह कुछ उपयोगी जोड़ देता है, और यह एक जकार्ता परियोजना है।

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


यह पता चला है कि जावा ईई 6 में जावा सर्वरफेस 2 अपने दम पर कर सकता है जो हमें जेएसएफ के साथ टॉमहॉक की आवश्यकता थी। यह एक काफी सक्षम ढांचा है (लेकिन थोड़ा एक्सएमएल भारी)
थोरबजोरन रेव एंडर्सन 20

महान बिंदु, दुर्भाग्य से लोग यह भूल जाते हैं कि सॉफ्टवेयर दशकों तक जीने के लिए बने हैं और दीर्घकालिक समर्थन एक महत्वपूर्ण कुंजी है।
तिमंज

6

मैं देख सकता हूँ अगर आप पहले से ही स्प्रिंग का उपयोग कर रहे हैं, लेकिन नई परियोजना के लिए, क्या बात है? मैं सीधे जावा ईई 6 (ejb3, jsf2.0, आदि) के साथ जाऊंगा

यदि ग्राहक फ्लेक्स के साथ ठीक है, तो इसके लिए जाएं। BlazeDS या समान का उपयोग करें - कोई पीवीसी नहीं। आप उस हिस्से पर अधिक समय बिता सकते हैं (सर्वर और क्लाइंट के बीच डेटा का आदान-प्रदान) लेकिन आपके पास दोनों पक्षों पर पूर्ण नियंत्रण है।

जब तक आप अपने ब्राउज़र को मारना नहीं चाहते, वाडिन का उपयोग न करें। साथ ही, आप कोड के आसपास होने पर अधिक समय बिताते हैं जब आपके पृष्ठ अधिक जटिल हो जाते हैं। साथ ही, आपकी मानसिकता को पूरी तरह से बदलने की आवश्यकता होगी और मानक फ्रंट एंड डेवलपमेंट के बारे में आपको जो भी पता होगा वह बेकार हो जाएगा। एचटीएमएल या जेएस का उपयोग करने के लिए आपके पास तर्क बहुत मायने नहीं रखता है। यदि आप इसका उपयोग नहीं करते हैं तब भी आपको इसे जानना होगा। यह अंततः HTML और JS को प्रदान करता है। फिर इसे डीबग करने का प्रयास करें - सुनिश्चित करें कि आपको साधारण सामान के लिए कुछ दिन मिले। साथ ही, मैं ऐसे वेब डेवलपर की कल्पना नहीं कर सकता, जो html / js को नहीं जानता हो।

मुझे अभी समझ में नहीं आया कि लोग सीधे जावा ईई का उपयोग करने के बजाय उन सभी अमूर्तताओं को क्यों आजमा रहे हैं।


5

2010 में ईजेबी के हेवीवेट होने के बारे में अभी भी रूंबिंग क्यों है? ऐसा लगता है कि लोगों को जावा ईई प्रौद्योगिकियों में अपडेट नहीं किया जा रहा है। बस इसे आज़माएं, आपको सुखद आश्चर्य होगा कि जावा ईई 6 में चीजों को कैसे सरल किया जाता है।


4

आपके प्रश्नों का उत्तर आपकी परियोजना आवश्यकताओं पर निर्भर करता है। यदि आपको जावा ईई सुविधाओं जैसे संदेश कतार, कंटेनर प्रबंधित वैश्विक लेनदेन आदि की आवश्यकता नहीं है, तो टॉमकैट + स्प्रिंग के साथ जाएं।

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

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

ग्लासफिश वी 3 जावा ईई 6 का समर्थन करता है और यह काफी हल्का है और वास्तव में तेजी से शुरू होता है। मैं अपने विकास के लिए ग्लासफिश v3 का उपयोग कर रहा हूं, और इसे कॉन्फ़िगर करना वास्तव में आसान है। यह एक बहुत ही उपयोगकर्ता के अनुकूल व्यवस्थापक कंसोल के साथ आता है जो आपको ग्राफिक रूप से आपके सर्वर को प्रशासित करने देता है।

यदि आप GlassfishV3 और JSF 2 का उपयोग कर रहे हैं, तो आप Java EE 6 के CDI फीचर्स का लाभ उठा सकते हैं, जिससे आप JSF में आसानी से वार्तालाप (जैसे पेज जैसे विज़ार्ड) बना सकते हैं।

कहा जा रहा है कि, जावा ईई 6 का उपयोग करने के लिए भी आपको एक नया एपीआई सीखना होगा। उपलब्ध समय-सीमा के आधार पर यह आपके लिए सबसे अच्छा विकल्प नहीं हो सकता है। टॉम्कट उम्र के लिए चारों ओर रहा है, और कई वेब प्रोजेक्ट्स द्वारा टॉमकैट + स्प्रिंग संयोजन को अपनाया गया है, जिसका अर्थ है कि बहुत सारे दस्तावेज़ / फ़ोरम आसपास हैं।


मैं आपके पहले वाक्य से सहमत नहीं हूं, विकल्प JMS का उपयोग करने या नहीं करने के बारे में नहीं है। और मुझे नहीं लगता है कि जावा ईई 6 में जेएसआर -३३० महत्वपूर्ण है (यह राजनीतिक कारणों से अधिक है), महत्वपूर्ण हिस्सा जेएसआर -२ ९९ (सीडीआई) है। कम से कम, यह मेरी राय है।
पास्कल थिवेंट

सहमत थे कि JSR330 में कुछ राजनीति शामिल थी - फिर भी यह काफी महत्वपूर्ण है क्योंकि यह DI को JEE- केवल तकनीक बनाने के बजाय जावा (SE या EE) में निर्भरता इंजेक्शन के लिए एक सामान्य आधार प्रदान करता है। इसके अलावा, यह स्प्रिंग फ्रेमवर्क और Google Guice द्वारा समर्थित है, जिसका अर्थ है कि यह JEE6 या इसके विपरीत में पोर्ट करने के लिए स्प्रिंग / Guice कोड को आसान बना देगा। JSR230 को JSR330 में सुविधाओं पर विस्तार करने के लिए डिज़ाइन किया गया था। आप JEE6 में वेब अनुप्रयोगों के लिए सही हैं, JSR299 बिल्कुल महत्वपूर्ण है। इन दो जेएसआर के लिए धन्यवाद, जेईई 6 और स्प्रिंग दोनों में बहुत समान प्रोग्रामिंग मॉडल है। उर टिप्पणी के लिए धन्यवाद!
राज

3

मैंने स्प्रिंग और जावा ईई 6. दोनों में काम किया है। मैं अपने अनुभव से क्या कह सकता हूं कि यदि आप पुराने जेएसपी या मालिकाना फ्लेक्स के लिए जा रहे हैं तो आप सुरक्षित हैं यदि आप स्प्रिंग के साथ रहते हैं।

लेकिन अगर आप JSF के साथ आगे बढ़ना चाहते हैं तो यह जावा ईई 6 में शिफ्ट होने का समय है। जावा ईई 6 के साथ आप फेसलेट्स और मानकीकृत स्क्रिप्ट लाइब्रेरी और कंपोनेंट लाइब्रेरी में जा रहे हैं। कोई और अधिक स्क्रिप्ट असंगतताएं और घटक लाइब्रेरी मैट्रिसेस नहीं।

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


1
आपके कमेंट के लिए धन्यवाद। मेरी पसंद वसंत + वाडिन थी।
पियोट्र ग्विज्दा

3

यदि आपको जावा ईई पूर्ण स्टैक की आवश्यकता है तो मैं आपको ग्लासफ़िश 3.1 की सलाह देता हूं। यह अन्य जावा ईई कंटेनरों की तुलना में बहुत जल्दी शुरू होता है जो कुछ भाग या सभी जावा ईई 6 (जेबॉस 6, वेबलॉजिक 10.3.4) को लागू करते हैं, पुन: तैनाती में कुछ सेकंड लगते हैं और लगभग सभी विन्यास पर सम्मेलन द्वारा किया जा सकता है, यह बहुत अनुकूल है।

मैं आपको कुछ "लाइट" चाहता हूं आप वांछित सुविधाओं के साथ एक अपाचे टोमैट 7.x को अनुकूलित कर सकते हैं। मैंने निम्नलिखित पुस्तकालयों के साथ बहुत अधिक उपयोग किया: वेल्ड 1.1.0 (CDI) JPA 2.0 (हाइबरनेट 3.6.x) - केवल संसाधन स्थानीय लेनदेन JSF 2.x (Mojarra) रिचफेसेस 4.0 BIRT रनटाइम

पिछले 10 वर्षों के लिए जावा ईई डेवलपर बने (मैं शुरुआती ईजेबी, जेएसएफ और वेब प्रौद्योगिकियों को पीड़ित करता हूं), जावा ईई 6 बहुत आसान है, अच्छी तरह से युग्मित है और वर्तमान हार्डवेयर सुचारू रूप से इतने मूल कारणों से चलता है कि प्रेरित स्प्रिंग अब मान्य नहीं हैं।


1
मुझे आपका जवाब पसंद है। बहुत ही उचित। जब मैंने सवाल पोस्ट किया तो JEE6 बहुत छोटा था और टॉमकैट 7 अभी तक समाप्त नहीं हुआ था। "मूल कारण जिन्होंने स्प्रिंग को प्रेरित किया वे अब मान्य नहीं हैं" - यह सच है, लेकिन सीडीआई के साथ जेईई 6 को कैथ करने के लिए कुछ समय चाहिए। उदाहरण के लिए: स्प्रिंग और गाइस के लिए जवामेलोडी मॉनिटरिंग उपलब्ध है (मैं इसके बिना अनुप्रयोगों पर चिंता करने की कल्पना नहीं कर सकता)। EHcache स्प्रिंग के लिए उपलब्ध है (मेरा मतलब है कैशिंग के तरीके परिणाम)। स्प्रिंग में आस्पेक्ट प्रोग्रामिंग जैसी बहुत सी चीजें अभी भी आसान हैं, क्योंकि बहुत सारे थर्ड पार्टी लाइब्रेरी और फ्रेमवर्क स्प्रिंग के साथ आसानी से एकीकृत हो जाते हैं लेकिन जेईई 6 के साथ अभी तक नहीं।
पियोट्र ग्विजाडा

1

मैं अभी भी वसंत पसंद करूंगा।

और मैं JSF पर पास हो गया। मुझे लगता है कि यह एक मृत तकनीक है। स्प्रिंग एमवीसी एक बेहतर विकल्प होगा। तो फ्लेक्स होगा। अनुबंध के पहले एक्सएमएल सेवाओं के बारे में सोचें और आप यूआई से बैक एंड को पूरी तरह से अलग कर सकते हैं।


1
मैंने Java + Flex और PHP + Flex के साथ कुछ एप्लिकेशन बनाए हैं और मैं मानता हूं कि यह समृद्ध इंटरफेस के लिए सबसे अच्छा समाधान है। लेकिन इस एप्लिकेशन में मैं फ्लेक्स का उपयोग नहीं कर सकता :( मुझे हालांकि कुछ उच्च-स्तरीय इंटरफ़ेस की आवश्यकता है, इसलिए स्प्रिंग एमवीसी एक समाधान नहीं है। मैं लूप में <tr> <td> की तुलना में सॉर्टेबल डेटेबल के बारे में सोचना चाहता हूं।
Piotr ग्विजाडा

1
@duffymo - मैं तर्क दे सकता हूं कि क्या फ्लेक्स एक अच्छा विकल्प है। जेएसएफ निश्चित रूप से मृत नहीं है, विशेष रूप से पुस्तकालयों जैसे कि रिफ़फेसेस, प्राइमफेस, आइसफ़ेस, आदि के साथ।
बोझो

1
IceFaces में मैं मेनू बनाता हूं, पेड़, डेटाग्रिड्स क्रियाओं, घटनाओं का उपयोग करता है और मुझे नहीं लगता कि पेज पुनः लोड होता है या यह एक अजाक्स अनुरोध है। एक सॉर्ट करने योग्य डेटाग्रिड या अजाक्स लोडेड पेड़ एक अंतर्निहित घटक है। स्प्रिंग एमवीसी में मैं एचटीएमएल - टेबल, सूचियों आदि पर काम करता हूं। मुझे कुछ थर्ड पार्टी जावास्क्रिप्ट फ्रेमवर्क का उपयोग करने और हाथ से AJAX मैजिक बनाने की आवश्यकता है। मैं इसे फ्लेक्स में करना चाहता हूं, लेकिन यह एक राजनीतिक / व्यावसायिक निर्णय है - मेरा नहीं।
पिओटर ग्विजाडा

1
मेरे वर्तमान दो JSF प्रोजेक्ट निश्चित रूप से मृत नहीं हैं;) और मैं फ्लेक्स की तुलना में RIA ("रिचफेसेस" में "रिच" बनाने के लिए JSF के तरीके से अधिक संतुष्ट हूं)। एक भी अगले हफ्ते सार्वजनिक हो रहा है।
बूझो

2
मैं वास्तव में जानना चाहता हूं कि आप अभी भी स्प्रिंग क्यों पसंद करेंगे, जावा ईई 6 अच्छा है। क्या आपको नहीं लगता कि जावा के भविष्य के लिए एक खुले मंच पर चलना महत्वपूर्ण है?
पास्कल थिवेंट

0

जब तक आप ग्लासफिश वी 3 और वेल्ड के लिए और अधिक परिपक्व बनने के लिए समय का इंतजार नहीं कर सकते, मैं स्प्रिंग + टॉम्केट की सिफारिश करूंगा। सीडीआई सक्षम अनुप्रयोगों के साथ ग्लासफिश चलाने पर मेमोरी मेमोरी / सीपीयू लोड के साथ वर्तमान में कुछ समस्याएं हैं।


0

सब कुछ नहीं पढ़ा, लेकिन सिर्फ यह बताने के लिए कि आप अब EJB3 का उपयोग Java EE 6 पर युद्ध के अंदर कर सकते हैं ताकि आप Tomcat पर EJB3 का उपयोग कर सकें (मुझे लगता है)।


हां, आप EJBs को WAR में Java EE 6 में पैकेज कर सकते हैं लेकिन इसका मतलब यह नहीं है कि आप टॉमैट पर ऐसे WAR को तैनात कर सकते हैं। आपको वेब प्रोफ़ाइल को लागू करने वाले एक कंटेनर की आवश्यकता है और टॉमकैट ऐसा नहीं करता है और वास्तव में इसे लागू करने के लिए टॉमकैट समुदाय में कोई योजना नहीं है (देखें । old.nabble.com/Java-EE-6-Web-Profile-td27715793.html )। लेकिन वहाँ GlassFish v3 वेब प्रोफ़ाइल है, वहाँ राल हो जाएगा ...
पास्कल Thivent

2
अद्यतन: TomEE + प्रोजेक्ट tomee.apache.org/apache-tomee.html
gpilotino

-3

मैंने आपको स्प्रिंग के साथ टॉमकैट की सिफारिश की है क्योंकि:

  1. वसंत JSP के लिए बैकिंग बीन्स बना सकता है
  2. आप जेपीए के माध्यम से वस्तु को बनाए रखने के लिए स्प्रिंग का उपयोग करेंगे

टॉमकैट का चयन करना अच्छा विकल्प है क्योंकि आपको किसी हैवीवेट प्रसंस्करण की आवश्यकता नहीं है


1
"हैवीवेट प्रोसेसिंग"? क्या आप विस्तृत कर सकते हैं? मैं उत्सुक हूँ।
पास्कल थिवेंट
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.