2013-02-27 35 views
12

मैं टॉर्चैट इंटेलिजे के माध्यम से चलने के साथ स्प्रिंग सोर्स के "स्प्रिंग लोडेड" क्लास रीलोडिंग एजेंट को आजमाने की कोशिश करना चाहता हूं।इंटेलिजे + टॉमकैट + स्प्रिंग लोडेड

https://github.com/SpringSource/spring-loaded

मैं अपने बिलाव चलाने विन्यास को JVM तर्क जोड़ दिया है, और मेरे webapp त्रुटियों के बिना शुरू होता है और सामान्य रूप से व्यवहार करने के लिए लगता है।

मुझे सच में यकीन नहीं है कि क्लास रीलोडिंग को कैसे ट्रिगर करना है। क्या मुझे बस उन वर्गों को संकलित करने की आवश्यकता है जिन्हें मैं संशोधित करता हूं? मैंने कोशिश की है और यह काम नहीं कर रहा था। क्या मुझे टॉमकैट अपडेट करने और कक्षाओं और संसाधनों को तैनात करने की आवश्यकता है? ऐसा लगता है कि या तो काम नहीं कर रहा है ...?

कोई विशिष्ट कॉन्फ़िगरेशन विवरण की सराहना की जाएगी।

संपादित करें: अधिक जानकारी, मुझे लगता है कि मेरी समस्या को दो मॉड्यूल, एक कोर कोड लाइब्रेरी और एक वेबपैप का उपयोग करने के साथ करना पड़ सकता है। मैं दोनों के लिए मेवेन का उपयोग करता हूं, एक जार परियोजना के रूप में कॉन्फ़िगर किया गया है और दूसरा एक युद्ध परियोजना के रूप में। IntelliJ जार मॉड्यूल की जार फ़ाइल का उपयोग करने के लिए विस्फोटित युद्ध के लिए आर्टिफैक्ट सेट करता है। मैंने आर्टिफैक्ट कॉन्फ़िगरेशन को स्विच करने की कोशिश की है ताकि जार मॉड्यूल के संकलित आउटपुट को वेब-आईएनएफ/कक्षाओं में शामिल किया जा सके। अब मैं लक्ष्य/वेबएप/वेब-आईएनएफ/कक्षा/आदि में .class फ़ाइलों को देखता हूं। लेकिन मुझे यकीन नहीं है कि जब मैं इसे संपादित करता हूं तो एक विशिष्ट वर्ग फ़ाइल को अद्यतन करने के लिए IntelliJ कैसे प्राप्त करें।

+0

आप लोड वसंत के साथ submodules को संभालने के लिए एक तरह से यह पता लगाने की थी? – Damien

+0

अभी तक नहीं। मैं लंबे समय तक इस पर काम करने के लिए वापस नहीं आया हूं। – sdouglass

उत्तर

5

आप निम्नलिखित JVM मानकों (springloaded पेज पर बताया गया है) अपने बिल्ला

-javaagent:<pathTo>/springloaded-{VERSION}.jar -noverify SomeJavaClass 

को जोड़ा गया, तो आप ठीक होना चाहिए। यह आपके द्वारा परीक्षण किए जा रहे वेबएप के लिए टोमकैट में ऑटो रीलोडिंग को अक्षम करने में मदद कर सकता है। अपने server.xml में exmaple के लिए:

<Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true"> 
    <Context docBase="projekt" path="/projekt" reloadable="false" ... 

यह सुनिश्चित करता है कि केवल वसंत लोड किए गए क्लासलोडर लोड वर्ग बदल गए।

+0

आपके उत्तर के लिए धन्यवाद। बदले गए वर्गों को फिर से लोड करने के लिए स्प्रिंगलोडेड क्लासलोडर को ट्रिगर करता है? क्या यह समय-समय पर होता है? क्या यह टाइमस्टैम्प परिवर्तनों के लिए कक्षा फ़ाइलों की निगरानी करता है? या क्या मुझे इसे ट्रिगर करने के लिए इंटेलिजे में कोई कार्रवाई करने की आवश्यकता है? – sdouglass

+0

https://github.com/spring-projects/spring-loaded क्लास फ़ाइलों के अनुसार एक बार एक बार परिवर्तन के लिए देखा जाता है। – varad

+0

क्षमा करें, लेकिन आपने IntelliJ का उपयोग करके इसे कैसे बदल दिया? मेरा मतलब है, IntelliJ का उपयोग करना बदलना असंभव है क्योंकि आपके पास "server.xml" की दृश्यता नहीं है, है ना? –

0

वसंत लोड होट्सपॉप जार नहीं हो सकता है। webapp/वेब-INF/वर्गों में

रखेंगे, वेब टुकड़ा उत्पादन

भी वसंत लोड समर्थन केवल वसंत 4.1 https://github.com/spring-projects/spring-loaded/issues/139