मैं पूरी तरह उलझन में हूं कि क्लास लोडिंग टॉमकैट में कैसे होती है। तो अगर मेरा सवाल बेवकूफ लगता है तो कृपया मेरे साथ भालू।टॉमकैट लिब फ़ोल्डर में स्प्रिंग जार
हम एकल टॉमकैट सर्वर पर एकाधिक वसंत वेबपैप्स तैनात करते हैं। मेमोरी पदचिह्न को कम करने के लिए, हमने टॉमकैट लिब फ़ोल्डर में वसंत, हाइबरनेट और डेटाबेस ड्राइवर जार रखने का विचार किया ताकि वे सभी वेबैप द्वारा साझा किए जा सकें।
मैंने वसंत निर्भरताओं को provided
के रूप में चिह्नित करके पहली बार शुरू किया और उन जारों को tomcat lib में कॉपी किया। लेकिन सर्वर स्टार्टअप पर मैंने commons-logging
, commons-fileupload
, jackson
, jackson
के लिए कई ClassNotFoundErrors
प्राप्त करना शुरू किया, इसलिए मुझे इन जारों को टॉमकैट लिब में भी ले जाना पड़ा।
लेकिन फिर यह फिश महसूस कर रहा था। अगर भविष्य में मैं अपने प्रोजेक्ट में एक और वसंत निर्भरता जोड़ता हूं, तो वसंत-डेटा-कैसंद्रा कहें। क्या मुझे इसके आश्रित जारों को भी स्थानांतरित करने की आवश्यकता होगी? यह अनदेखा हो सकता है। इसके अलावा मुझे रनटाइम पर सीएनएफ त्रुटियां मिल सकती हैं।
मैंने this लिंक का पालन करने की कोशिश की और वसंत-संदर्भ और वसंत-वेब को वापस युद्ध युद्ध में वापस लाया। लेकिन यह काम नहीं किया, WebApplicationIntializer
प्रारंभिकरण के दौरान कुछ कक्षाओं पर ClassNotFound मिला। मैंने classes getting loaded in tomcat के आदेश को समझने की कोशिश की, लेकिन ज्यादा समझ में नहीं आया।
फिर मुझे JDBC driver loading के लिए एक पूर्ण भिन्न स्पष्टीकरण मिला जो कि अन्य सभी स्पष्टीकरणों के विपरीत है और मुझे पूरी तरह उलझन में छोड़ दिया।
जैसा कि मैंने अधिक पढ़ सकते हैं, मुझे लगता है कि यह एक सही दृष्टिकोण बिल्ला lib करने के लिए वसंत जार ले जाने के लिए नहीं है, लेकिन अभी भी एक अच्छा तर्क नहीं मिला है। और फिर जेडीबीसी चालक क्यों काम करता है? क्या कोई समझा सकता है? प्रत्येक वेबपैप के लिए क्लासलोडर भी प्रत्येक वर्ग की एक प्रति बनाता है?
संपादित करें 1: मुझे पता चला कि स्प्रिंग जार में कुछ निर्भरता optional
हैं, और यदि मेरे वेबैप में उपयोग में हैं तो इसकी आवश्यकता होगी। तो वसंत-वेब jackson
पुस्तकालयों पर निर्भर करता है लेकिन मेरे ऐप के लिए वैकल्पिक है। इसलिए मुझे यह पता लगाने की ज़रूरत है कि मेरे प्रोजेक्ट के लिए कौन से जार की आवश्यकता है और वसंत द्वारा भी जरूरी है, उन जारों को टॉमकैट लिब में ले जाना होगा।
धन्यवाद। ऐसा लगता है कि समस्याएं पैदा करने वाली निर्भरताएं 'वैकल्पिक' थीं।इसलिए ट्रांजिटिव निर्भरताओं को ढूंढना वास्तव में मुश्किल है, मुझे – sidgate
की आवश्यकता होगी यदि आप अपने युद्धों को बनाने के लिए मेवेन का उपयोग करते हैं, तो यह सभी आर्टिफैक्ट में सभी ट्रांजिटिव डीपी पैकेज करता है। –
सभी नहीं, वैकल्पिक निर्भरता शामिल नहीं हैं – sidgate