java - जावा वर्ग पुनः लोड हो रहा है




class jboss (2)

ऐसा प्रतीत होता है कि आपको वेब को संशोधित करके अपने आवेदन को पुनः लोड करने के लिए सर्वर को छलनी पड़ेगा- xml- जिसका अर्थ है कि आप एक संपादक में वेब.एक्सएम खोल सकते हैं तो एक जगह दर्ज करें तब फाइल को हटा दें और फ़ाइल को सहेजें या फ़ाइल पर संशोधन की तारीख को उपयोगिता में बदलें ।

टॉमकैट के सर्वर। एक्सएमएल फ़ाइल में जेबस को टोमकैट की पुनः लोड करने योग्य = "सच्चा" ध्वज जैसी सुविधा नहीं है।

मैं jboss सर्वर का उपयोग कर रहा हूं और मेरी सभी कक्षाएं एक जार फ़ाइल के अंदर कर रहा हूं।
अब अगर मैं किसी भी जावा फाइल को बदलूँ, तो मुझे जार में क्लास फ़ाइल को बदलने की जरूरत है और मुझे सर्वर को पुनरारंभ करना होगा
क्या सर्वर को पुनरारंभ किए बिना नए बनाए गए क्लास फ़ाइल गतिशील रूप से लोड करने का कोई तरीका है?

अग्रिम में धन्यवाद।


वहाँ कई समाधान हैं, उनमें से कोई भी विशेष रूप से साफ या आसान नहीं है

जैसा कि कहा गया है, web.xml को बदलने से संदर्भ पुनः लोड होगा और इसलिए स्रोत कोड को रीफ़्रेश करेगा और यह सर्वर को पुनरारंभ किए बिना किया जा सकता है। यह काम करता है क्योंकि "WEB-INF / web.xml" TOMCAT / conf / Context.xml फ़ाइल में WatchedResource के रूप में कॉन्फ़िगर किया गया है। यही हर संदर्भ इस सेटिंग को संभालता है और स्वचालित रूप से इस फ़ाइल को देखता है। आप इस व्यवहार को हटा सकते हैं लेकिन आप अतिरिक्त फाइल देखने के लिए अपने स्वयं के web.xml में देखे गए संसाधन स्रोतों को भी प्रदान कर सकते हैं। हालांकि मैं इसकी अनुशंसा नहीं करता, आप अपनी सभी क्लास फ़ाइलों को इस पर जोड़ सकते हैं और जब आप एक फ़ाइल बदलते हैं तो प्रसंग पुनः लोड होता है।

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





hotswap