2012-07-25 21 views
24

जब मैं servlet अंदर ग्रहण Dynamic Web Project में अनुवर्ती कोड का उपयोग, इस तरह: मेंग्रहण - गतिशील वेब प्रोजेक्ट को .jar जोड़ने

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

:

@WebServlet("/CreateCustomerServlet") 
public class CreateCustomerServlet extends HttpServlet { 
    private static final long serialVersionUID = 1L; 

    private void test() throws SQLException, ClassNotFoundException { 
     // use the JAR ... 
     Class.forName("com.mysql.jdbc.Driver");//here the exception 
    } 
} 

यह अपवाद फेंक लाइन:

Class.forName("com.mysql.jdbc.Driver");

गतिशील वेब परियोजना के रास्ते बिल्ड में मैं जार कहा:

mysql-connector-java-5.1.21-bin.jar

मैं फ़ोल्डर का स्नैपशॉट जोड़ने के लिए, आप देख सकते हैं, जहां यह आवश्यक जार है -

enter image description here

उत्तर

33

आपके स्क्रीनशॉट के अनुसार, MySQL jar वेब ऐप लाइब्रेरी नोड के अंतर्गत प्रकट नहीं होता है। WebContent/WEB-INF/lib में जार पेस्ट करें, और इसे स्वचालित रूप से वेबपैस के रनटाइम क्लासपाथ में and के निर्माण पथ में जोड़ा जाएगा (और यह वेब ऐप लाइब्रेरी के तहत दिखाई देगा)।

+0

उत्तर के लिए धन्यवाद! – newbie

+2

बहुत बहुत धन्यवाद। आपने हमें हैकथॉन – gkiko

+0

पर सहेजा है जो काम करता है, मुझे भी एक ही समस्या का सामना करना पड़ रहा था, क्या गतिशील वेब प्रोजेक्ट के निर्माण पथ के साथ कोई समस्या है? –

1

संकलन समय & रनटाइम दो अलग-अलग चीजें हैं। जो भी आपने अभी जोड़ा है, वह संकलन समय & केवल निर्माण उद्देश्य के लिए है। रनटाइम सर्वर कक्षा को लोड करने का प्रयास करता है। प्रोजेक्ट lib फ़ोल्डर को भी एक ही जार जोड़ें (जिसे WAR के साथ पैक किया जाएगा और रनटाइम पर सर्वर के लिए उपलब्ध होगा)।

2

यह करके देखें:

proyect की रूट निर्देशिका में एक नामी निर्देशिका lib करें और उस में .jar डाल दिया।

वेब-आईएनएफ निर्देशिका में, lib का लिंक बनाएं।

अब, जार वेबबैप पुस्तकालयों के अंतर्गत दिखाई देगा।

23

अभी मैं इस समस्या का निवारण करता हूं।

  • बस अपनी परियोजना के properties पर जाएं।
  • Deployment Assembly ->add ->Java Build Path Entries का चयन करें।

और आप कर चुके हैं!

+3

यह सब ठीक करने के बजाय यह सही है परियोजना के lib फ़ोल्डर में lib jars ... बहुत बढ़िया –

0

समाधान बहुत सीधा है: ProjectName> जावा संसाधन:: src> पुस्तकालय> WebApp पुस्तकालय

1. Right click on the your web project and choose PROPERTIES 

2. Choose the J2EE Module Dependencies 

3. Click on the Add External JARs… and then point on your library file (ZIP or JAR) 

4. Click on Apply then OK. 

5. Restart your Apache Tomcat 

जोड़ा पुस्तकालय के तहत देखा जाना चाहिए।

+1

ऐसा लगता है कि ग्रहण 'जे 2 ईई मॉड्यूल निर्भरता' के नए संस्करण में 'परिनियोजन असेंबली' के साथ प्रतिस्थापित किया गया था। – Pshemo

+0

@Pshemo, हाँ दोस्त। आपका अधिकार, जो कि नए संस्करण में था। लेकिन, यह भी दोस्त का जवाब है। – jmail

+1

मैं यह नहीं कह रहा था कि यह कोई जवाब नहीं है क्योंकि यह कई लोगों के लिए उपयोगी हो सकता है। मेरी टिप्पणी का अर्थ केवल ग्रहण के नए संस्करणों वाले लोगों के लिए थोड़ा सुधार था। यहां तक ​​कि शायद यहां तक ​​कि बहुत से लोग आपके दोस्त नहीं हैं इसलिए इस शब्द से बचने की कोशिश करें। – Pshemo

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