2011-10-14 23 views
10

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

मेरा प्रोजेक्ट एक मेवेन प्रोजेक्ट है और मैं नेटबीन को तैनात करने के लिए उपयोग कर रहा हूं। साइट स्प्रिंग, जेएसएफ और हाइबरनेट फ्रेमवर्क का उपयोग करती है।

नेटबीन्स में, सहेजें पर तैनात, निम्नलिखित स्क्रीनशॉट के अनुसार सक्षम होना प्रतीत होता है, लेकिन क्लिकिंग/अनक्लिंग करना संभव नहीं है क्योंकि यह मेरे pom.xml से जानकारी प्राप्त करने का दावा करता है (हालांकि मेरे पोम में ऐसा कोई क्षेत्र नहीं है .xml (केवल निर्भरता))। enter image description here

अब, कुछ फ़ाइलों में परिवर्तन तुरंत प्रभावी प्रतीत होते हैं। इनमें शामिल हैं: - JSF फ़ाइलों - स्टेटिक फ़ाइलों

निम्न के

परिवर्तन तैनाती की आवश्यकता होती है: - कोई एक्सएमएल फ़ाइल - कोई गुण फ़ाइल, यहां तक ​​कि स्थानीयकरण गुण फ़ाइलें - कोई जावा फ़ाइल उन लोगों के लिए

परिवर्तन मुझे आवश्यकता मैन्युअल रूप से तैनात करने के लिए और पुनर्वितरण में आधे मिनट लगते हैं, भले ही मेरे पास वर्तमान में केवल 2-3 वर्ग हैं, मूल रूप से एक एकल उपयोगकर्ता वर्ग और प्राधिकरण वर्ग। परियोजना फिलहाल सिर्फ लॉग इन की अनुमति देती है, और इसके बावजूद, संकलन लगभग कुछ सेकंड लेता है; और कंटेनर (ग्लासफ़िश) लगभग 600 एमबी रैम का उपभोग करता है और कुछ तैनाती के बाद भी पर्मजेन त्रुटियों को देता है और मुझे टास्क मैनेजर का उपयोग करके जावा प्रक्रिया को मारने की ज़रूरत है। (मैंने पढ़ा है कि यह प्रत्येक पुनर्वितरण के बाद कचरा कलेक्टर लीकिंग से संबंधित है, और मैंने प्रोफ़ाइल बनाने के लिए झट का भी उपयोग किया है, लेकिन हजारों वर्गों, मेरी कक्षाओं, स्प्रिंग, हाइबरनेट कक्षाओं आदि की सूची के साथ प्रस्तुत किया गया था)

मैंने जेबेल के बारे में भी सुना है, और इसे चलाने का प्रयास किया है, लेकिन ऐसा लगता है कि यह मेरे नेटबीन्स संस्करण (7.0) के साथ संगत नहीं है और भले ही ऐसा लगता है, किसी भी जावा फ़ाइल में किसी भी संशोधन के लिए अभी भी एक पुनर्वितरण की आवश्यकता है।

क्या कोई समस्या है जो मैं इन मुद्दों का समाधान करने के लिए कर सकता हूं, या जावा ईई में यह सामान्य है कि प्रत्येक जावा फ़ाइल में प्रत्येक बदलाव के बाद लगभग 1 मिनट तक प्रतीक्षा करें? इस मुद्दे में उत्पादकता में काफी कमी आई है।

यहाँ मेरी Glassfish उत्पादन जब आवेदन की तैनाती है: http://pastebin.com/7FhZ6AVh

उत्तर

5

मैं न तो विश्वसनीय है और न ही आधिकारिक सूत्रों पाया है, लेकिन मैं दो बातें मुझे पता चला है का कहना है करना चाहते हैं जब से तुम कोई जवाब नहीं है।

नेटबीन साइट पर पहला this FAQ है जो वर्णन करता है कि मैवेन प्रोजेक्ट के लिए सहेजने पर संकलन कैसे चालू करें। ऐसा प्रतीत होता है कि यह सेटिंग डिफ़ॉल्ट रूप से बंद होती है और केवल परीक्षण के लिए डिफ़ॉल्ट रूप से होती है। सुविधा के लिए:

यह मुख्य स्रोत निष्पादन के लिए चालू करने के साथ ही, परियोजना गुण संवाद, संकलित कक्ष पर जाएं।

दूसरा है, और मुझे यह कहना चाहिए कि मुझे यह पूरी तरह से समझ में नहीं आता है, नेटबीन एक वेब अनुप्रयोग को तैनात करने के दो अलग-अलग तरीके हैं।पहला तरीका एक इन-प्लेस परिनियोजन है जो सर्वर पर मैन्युअल रूप से .war फ़ाइल को तैनात करने जैसा ही प्रतीत होता है। दूसरा एक वृद्धिशील तैनाती है, जो कि अगर यह वृद्धिशील संकलन की तरह कुछ भी है तो इसका मतलब है कि जब आपका ऐप गर्म-तैनात होता है तो आप केवल बदली गई फ़ाइलों को तैनात कर रहे हैं।

जब आप या तो Run या Deploy पर क्लिक करें, तो परियोजनाओं के संदर्भ मेनू से इन-प्लेस परिनियोजन परिनियोजन की डिफ़ॉल्ट विधि प्रतीत होती है। वृद्धिशील तैनाती तब होती है जब आपकी प्रोजेक्ट पहले से ही तैनात की जाती है और आप Run फिर से क्लिक करें (या Run टूलबार बटन का उपयोग करें)।

मैं यह इंगित करना चाहता हूं कि NetBeans अक्सर पूछे जाने वाले प्रश्न, netbeans.org वेबसाइट पर एक आधिकारिक प्रकाशन नहीं है। कोई भी एक एफएक्यू बना सकता है और जानकारी बिना संशोधन के अप्रचलित हो सकती है।

संपादित: एक छोटे से प्रतिबिंब के बाद मैंने तय कर लिया है कि तथाकथित वृद्धिशील तैनाती यह सिर्फ है कि दूसरी बार आप Run अपने आवेदन में यह एक वृद्धिशील तैनाती करता तैनाती का एक अलग तरीका नहीं है।

संपादित: ध्यान दें कि अनुदेश ऊपर Compile पैनल के लिए आप इशारा कर रही है के रूप में Run पैनल है कि आप अपने स्क्रीनशॉट में चयन किया है करने का विरोध किया। यहाँ मेरी स्क्रीन शॉट दिखा रहा है कि आप नीचे Compile पैनल ड्रॉप में for both application and test execution चयन करने की आवश्यकता है और डिफ़ॉल्ट for test execution only

0

"सहेजें पर संकलित" है कि मेरे लिए चीजें एक बहुत धीमी हो गई, लेकिन एक और बात मैं पाया है बाद में नेटबीन्स में "कोड कोड लागू करें" बटन है, जो केवल डीबग मोड में दिखाई देता है। (चित्र में दाईं ओर हरा बटन)

जावा कोड परिवर्तन लागू करने के लिए यह उपयोगी है; यह हर बार काम नहीं करता है, लेकिन मुझे लगता है कि यह अधिकांश समय काम करता है यदि परिवर्तन एक विधि अतिरिक्त नहीं है और बीन अनुरोधित है। मुझे लगता है कि यह मैन्युअल रूप से सहेजें पर संकलित करता है, लेकिन यह पुन: नियोजन से बेहतर है।

Apply Code Changes

+0

"कोड परिवर्तन लागू करें" hotswap है। यदि आप कक्षा हस्ताक्षर बदल रहे हैं तो यह काम नहीं करेगा। – Daniel

2

JRebel NetBeans 7.0 के साथ संगत है (http://plugins.netbeans.org/plugin/22254/jrebel-netbeans-plugin) और वास्तव में यह वहाँ बाहर किसी भी आईडीई साथ संगत है।

1

यह NetBeans टीम कि NetBeans 7.2.1 और 3.1.2 ग्लासफिश पर JRebel की स्थापना के माध्यम से चलता है से Geertjan Wielenga द्वारा एक महान वीडियो है:

कैसे NetBeans IDE में JRebel साथ आरंभ करने के लिए: http://www.youtube.com/watch?v=kveXKv2q4Ec

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