java.lang.ClassNotFoundException विशिष्ट फ़ोल्डर में - लिनक्स, जेएसपी, टोमकैट

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

एक बहुत असामान्य सामना करने वाला मुद्दा। प्रश्न में निर्देशिका में प्रत्येक पृष्ठ (/ tomcat / webapps / वेबसाइट / अंग्रेजी / लॉगिन) java.lang.ClassNotFoundException फेंकता है।

इस समस्या का निवारण करने के लिए, मैंने एक बनाने की कोशिश की है"हैलो वर्ल्ड" के साथ खाली जेएसपी और कोई कोडिंग नहीं है और अभी भी एक java.lang.ClassNotFoundException फेंकता है। मैं इस निर्देशिका के बाहर एक ही जेएसपी पेज बना देता हूं और यह ठीक है

इस मुद्दे को दोहराने के लिए उठाए गए कदम:

  1. मैं प्रश्न में निर्देशिका में प्रवेश करता हूं (टोमकैट / वेबएप / वेबसाइट / अंग्रेजी / लॉगिन)
  2. Test.jsp नामक एक जेएसपी पेज बनाएं जिसका शाब्दिक रूप से "हैलो वर्ल्ड" है (कोई कोडिंग नहीं)
  3. ब्राउज़र पर, मैं test.jsp पर नेविगेट करता हूं। यह एक java.lang.ClassNotFoundException फेंकता है
  4. मैं लॉगिन से एक निर्देशिका में प्रवेश करता हूं (टोमकैट / वेबएप / वेबसाइट / अंग्रेजी)
  5. Test2.jsp नामक एक जेएसपी पेज बनाएं जिसका शाब्दिक रूप से "हैलो वर्ल्ड" है (कोई कोडिंग नहीं)
  6. ब्राउज़र पर, मैं test2.jsp पृष्ठ पर नेविगेट करता हूं। यह काम करता हैं

मैंने अन्य परीक्षण किया है लेकिन समस्या नहीं मिली। कुछ विधियों के लिए नीचे देखें

  • वेब एप्लिकेशन को एक अलग निर्देशिका (tomcat / webapps / website2) में ले जाया गया। / अंग्रेजी / लॉगिन निर्देशिका सहित सब कुछ काम करता है
  • वेब अनुप्रयोग निर्देशिका हटा दी गई और निर्देशिका पथ को फिर से बनाया, अभी भी मुझे अपवाद दे रहा है
  • चेक किए गए अनुमतियां प्रश्न में निर्देशिका में वही अनुमतियां हैं जैसे वेब एप्लिकेशन में सभी चीजें (फाइलों सहित)

परीक्षणों के परिणामों के साथ, मुझे विश्वास है कि समस्या ही निर्देशिका है (/ tomcat / webapps / english / login)। हर बार जब मैं निर्देशिका को स्थानांतरित करता हूं, सबकुछ काम करता है।

आपको याद है कि मैं वेब पर बदलाव कर रहा थाएक टेक्स्ट एडिटर (नोटपैड ++) का उपयोग करके ग्रहण पर नहीं, टीमसिटी (जो ठीक से संकलित किया गया है) का उपयोग कर एप्लिकेशन का निर्माण, सर्वर लिनक्स के तहत चलता है और मुझे बिल्ड स्क्रिप्ट तक कोई पहुंच नहीं है लेकिन मेरा मानना ​​है कि एएनटी बिल्डर के रूप में उपयोग किया जाता है

तो मेरा सवाल यह है कि, इस मुद्दे का क्या कारण है? कक्षा की तलाश करने के लिए एक विशिष्ट निर्देशिका में सभी फाइलें रखने के लिए?

किसी भी सुराग / मदद की बहुत सराहना की है। मैं कुछ दिनों के लिए इस समस्या पर काम कर रहा हूं। यह दिमागी दबदबा है

चीयर्स!

उत्तर:

जवाब के लिए 0 № 1

मैं पीएस-एफ के साथ इस्तेमाल होने वाले वर्ग पथ की जांच करता हूं और प्रक्रिया की तलाश करता हूं। त्रुटि लॉग को एक विशिष्ट वर्ग को इंगित करना चाहिए। उन दो सुराग निर्धारित करने में मदद कर सकते हैं कि कॉन्फ़िगर या युद्ध समस्या है या नहीं।

एक संभावना है कि मैंने देखा है कि एक टोमकैट कॉन्फ़िगरेशन फ़ाइल में, अनुमति देने वाले पथ स्पष्ट रूप से परिभाषित किए गए हैं। साथ ही, एक कॉन्फ़िगरेशन फ़ाइल जावा क्लास के विशिष्ट पथ को मैप कर सकती है।


जवाब के लिए 0 № 2

मेरी अपनी समस्या का जवाब मिला।मुद्दा टॉमकैट में निकलता है। वेब सर्वर जेएसपी फ़ाइल को .java फ़ाइल में परिवर्तित करता है और फिर इसे संकलित करता है। कुछ अजीब कारणों से, टोमकैट एक निश्चित फ़ोल्डर में मेरी सभी फाइलों के लिए ऐसा नहीं कर रहा था।

समाधान टॉमकैट के काम फ़ोल्डर में जाना है, जब तक आप अपना वेबपैप नाम नहीं देखते हैं और फ़ोल्डर को हटाते हैं तब तक ड्रिल करें। यह टॉमकैट को सभी विज़िट किए गए पृष्ठों का पुनर्निर्माण करने के लिए मजबूर करेगा।

एक सुरक्षित तरीका (जो मेरे लिए काम नहीं करता था।कार्य फ़ोल्डर में वेबपैप को नहीं हटाया गया) टॉमकैट में लॉग इन करना और वेबपैप को सभी को एक साथ बेदखल करना है। इसे टोमकैट के कार्य फ़ोल्डर में वेबपैप फ़ोल्डर को हटाना चाहिए।

उम्मीद है कि यह उन मुद्दों के लिए मदद करता है जो समान मुद्दों का सामना कर रहे हैं


संबंधित सवाल
सबसे लोकप्रिय