2016-04-29 9 views
6

मुझे बसंत एमवीसी के साथ लोड वसंत का उपयोग कर कुछ समस्याएं आ रही हैं। मैंने वसंत भारित जार को सर्वर पर जावा एजेंट के रूप में जोड़ा।वसंत एमवीसी ढांचे में लोड वसंत का उपयोग

अब जब मैंने अपने मामले में उदाहरण के लिए नई विधियां जोड़ दीं तो मैंने एक नया विधि परीक्षणहोम्स() जोड़ा, और यह मुझे इस संवाद के साथ देता है। enter image description here

नीचे मेरी config enter image description here

enter image description here

मैं भी स्वचालित रूप से बिल्ड जाँच मैं वसंत ढांचे 4.2.5.RELEASE का उपयोग कर रहा है।

मैं नीचे दिए गए लिंक SpringLoaded

'हॉट कोड के स्थान पर' जो केवल अनुमति देता है एक बार एक JVM साधारण परिवर्तन (विधि निकायों को जैसे परिवर्तन) चल रहा है के विपरीत, स्प्रिंग लोडेड आप जोड़ने की अनुमति देता से जाँच की/संशोधित/विधियों/फ़ील्ड/कन्स्ट्रक्टर हटाएं। प्रकार/विधियों/फ़ील्ड/कन्स्ट्रक्टरों पर टिप्पणियां भी संशोधित की जा सकती हैं और एनम प्रकारों में मूल्यों को जोड़ना/निकालना/बदलना संभव है।

क्या कोई तरीका है कि मैं यह काम कर सकता हूं?

सादर,

+0

आपकी कॉन्फ़िगरेशन सही है। लेकिन वसंत लोड के साथ उनके कुछ आंतरिक मुद्दे हैं। तो यह पूर्व पुनर्निर्माण के साथ नई विधियों को लोड नहीं कर सकता है। विधि के अंदर कुछ लाइनों को बदलने की कोशिश करें। मुझे लगता है, यह ठीक काम करेगा। –

+0

हाँ, जब मैं मौजूदा विधि का शरीर बदलता हूं, तो यह ठीक है। वसंत लोड किए गए विवरण पर एक त्वरित नज़र ने मेरा ध्यान खींचा जहां यह कहता है कि "हॉट कोड प्रतिस्थापित करने के विपरीत 'जो एक जेवीएम चल रहा है (उदाहरण के लिए विधि निकायों में परिवर्तन) के बाद केवल सरल परिवर्तनों की अनुमति देता है, स्प्रिंग लोडेड आपको विधियों को जोड़ने/संशोधित/हटाने की अनुमति देता है/फ़ील्ड/कन्स्ट्रक्टर। प्रकार/विधियों/फ़ील्ड/कन्स्ट्रक्टरों पर एनोटेशन भी संशोधित किए जा सकते हैं और एनम प्रकारों में मूल्यों को जोड़ना/निकालना/बदलना संभव है। " –

+0

मैं उनके दस्तावेज़ में देखता हूं कि आपको JVM में '-नोवरिफ़' तर्क पास करने की आवश्यकता है, लेकिन मुझे यह नहीं लगता कि आपके JVM कॉन्फ़िगरेशन में। यह वैकल्पिक नहीं प्रतीत होता है। – Gus

उत्तर

1

हॉट कोड क्या है ?: बदलें

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

जब यह काम करता है:

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

समस्या निवारण:

  1. की जाँच करें कि क्या आप समर्थित वी एम पर आवेदन चल रहे हैं (नोट लेने कि JVM कि ग्रहण चलाता अपने जावा अनुप्रयोग चल रहा है JVM के रूप में ही नहीं हो सकता है)।

  2. जांचें कि स्वचालित भवन चालू है या नहीं। सुनिश्चित करें कि 'प्रोजेक्ट> स्वचालित रूप से बनाएं' चेक किया गया है।

  3. ग्रहण टॉमकैट सर्वर पर निम्न विकल्प का चयन किया जा रहा है।

    enter image description here

संदर्भ: wiki.eclipse

+0

यह बहुत जानकारीपूर्ण है लेकिन स्प्रिंगलोडेड विकी के अनुसार, एक विधि जोड़ना वसंत लोडेड के साथ काम करना चाहिए जब तक कि साइट पर दी गई जानकारी सही नहीं है। Http://github.com/spring-projects/spring-loaded –

0

javaagent JVM विकल्प है। तो इसे D उपसर्ग के बिना पास किया जाना चाहिए। यानी आपको

-javaagent:springloaded-1.2.5.RELEASE.jar -noverify 
संबंधित मुद्दे