2017-01-11 48 views
16

मुझे वसंत बूट/टॉमकैट उदाहरणों में जेएसपी का उपयोग करने में समस्या है। असल में, मैं मॉड्यूल एक के अंदर सभी jsp फ़ाइलें (ए/src/मुख्य/संसाधन/META-INF/संसाधन/jsp) है और इस मॉड्यूल मॉड्यूल बी (मुख्य मॉड्यूल, युद्ध पैकेजिंग) एक जार निर्भरता के रूप में में शामिल किया गया है। समस्या यह है, जब अनुप्रयोग डिबग मोड में चल रहा है (या तो ग्रहण में या में IntelliJ विचार), केवल पुनः आरंभ, jsp मॉड्यूल एक में स्थित फ़ाइलों में से कोई भी, किया जा रहा ऑटो पुनः लोड कर रहे हैं (फ़ाइल में परिवर्तन प्रदान की गई वेब पेज पर नहीं देखा जाता है) टोमकैट की वास्तव में फाइलों को फिर से लोड करता है और परिवर्तन दिखाता है। मॉड्यूल बी में ओवर्रिडेन जेएसपी फाइलों को खुद को फिर से लोड किया जा रहा है, मॉड्यूल ए में बस जेएसपी फाइलों में समस्याएं हैं (शायद मेटा-आईएनएफ/संसाधन फ़ोल्डर के कारण)।टोमकैट/स्प्रिंग बूट रीटालोडिंग मेटा-आईएनएफ/संसाधन/जेएसपी फाइलें (लाइव अपडेट)

मॉड्यूल एक संरचना (निर्भरता, जार के रूप में पैक):। src/मुख्य/संसाधन/META-INF/संसाधन/jsp/* jsp

मॉड्यूल बी संरचना (मुख्य मॉड्यूल, युद्ध, में jsp के रूप में पैक यहाँ) मॉड्यूल एक में लोगों को ओवरराइड: src/मुख्य/webapp/jsp/* jsp

मैं इस के लिए एक समाधान के लिए खोज की है, लेकिन सबसे करीब मैं एक जवाब के लिए आया था इस किया गया था (JRebel का उपयोग करते हुए):। https://zeroturnaround.com/forums/topic/jsps-in-servlet-3-0-jars-are-not-reloading/

इसके अलावा, यह एक उदाहरण है कि मेरे पास jsp सेट अप कैसे है: https://github.com/ghillert/spring-boot-jsp-demo

+0

आप साफ-इंग की कोशिश की बिल्ला काम फ़ोल्डर ऊपर है? सिद्धांत रूप में आप आईडीई को सहेजने के लिए एक कार्य करने के लिए मजबूर कर सकते हैं, इसलिए उदाहरण के लिए'.jsp' फ़ाइल पर सहेजें/हटाएं निर्देशिका निर्देशिका को सहेजें। – Babl

+0

हां, अभी भी कोई भाग्य नहीं है। – n00b

+0

https://tomcat.apache.org/tomcat-8.0-doc/config/resources.html पर एक नज़र डालें, ऐसा लगता है कि आप संसाधन कैश को पूरी तरह अक्षम कर सकते हैं। – Babl

उत्तर

4

अगर यह आपके बाधाओं फिट बैठता है, लेकिन वहाँ इस तरह एक समाधान है मैं नहीं जानता: https://spring.io/blog/2015/06/17/devtools-in-spring-boot-1-3

एक अन्य विकल्प: https://github.com/spring-projects/spring-loaded

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

+0

मुझे सभी फ़ाइलों (जेएस, सीएसएस, जेएसएफ) और जेएस/सीएसएस काम के लिए गर्म रीलोड की आवश्यकता है, बस एक जार के अंदर जेएसएफ फाइलें (src/main/resource/मेटा-आईएनएफ/संसाधन/जेएसपी/* समस्याएं हैं। जेएसएफ फाइलें मुख्य परियोजना में होंगी (जिसे मैं वसंत बूट के साथ चलाता हूं और एक निर्भर जार में नहीं) फ़ोल्डर में वेब-आईएनएफ में, यह काम करता है, केवल निर्भर जार के अंदर मेटा-आईएनएफ फ़ोल्डर से नहीं। – n00b

+0

क्या आपने देखा वसंत-बूट-देवतोल्स पर? –

+0

हां, devtools उन फ़ाइलों को फिर से लोड नहीं करते हैं। – n00b

4

यह बेहद संभावना है एक ही रूप में: https://stackoverflow.com/a/8656527/696632

सभी संसाधनों classpath में एक कैश के अधीन हैं। आपको जवाब का मूल्यांकन करना चाहिए।

+0

यह वही नहीं है, लेकिन बहुत करीब है मेरा जवाब। मैं टी समाशोधन करने की कोशिश कर सकता हूँ उन्होंने उस जवाब में सुझाव दिया कि यह वास्तव में फाइलों को फिर से लोड करेगा या नहीं। – n00b

1

आपकी फ़ाइलों को टोमकैट पर पुन: नियोजित करने के लिए Gradle Cargo Plugin या Maven Cargo plugin का उपयोग करने का विकल्प हो सकता है (सभी फ़ाइलों को पुन: नियोजित किया जा सकता है, संसाधन फ़ाइलों सहित)।

फ़ाइल रीलोडिंग स्वचालित नहीं है। आपको मैन्युअल रूप से प्रासंगिक कार्य/लक्ष्य, कार्गो रेडियोकोकलोकल या कार्गो चलाने की ज़रूरत है: क्रमशः ग्रैडल और मेवेन के लिए पुनर्वितरण बनाता है।

यदि सब कुछ पुनरारंभ करने में काफी समय लगता है, तो कार्गो प्लगइन का उपयोग करके पुन: नियोजित करने से गति चीजों में मदद मिल सकती है।

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