2011-02-21 14 views
8

के लिए जूनिट परीक्षण चलाते समय मैं एक विधि का उपयोग कर रहा हूं जो मुझे डेटासॉर लौटाता है। विधि नीचे दी गई है:org.hsqldb.jdbcDriver ClassNotFoundException एक विधि

public static DataSource getDataSource(){ 
     String url; 
     //url="jdbc:hsqldb:file:"+filePath; 
     url = "jdbc:hsqldb:file:D:/EclipseWorskpace/ew-pg/lmexadapter/hsqldb-example/src/main/webapp/WEB-INF/data/db/hsqldb.jar"; 
     BasicDataSource basicDataSource = new BasicDataSource(); 
     basicDataSource.setUsername("SA"); 
     basicDataSource.setPassword("password"); 
     basicDataSource.setDriverClassName("org.hsqldb.jdbc.JDBCDriver"); 
     basicDataSource.setUrl(url); 
     System.out.println("$$$$$$$$ URL is : " + url); 
     return basicDataSource; 
    } 

और मैं इन पद्धतियों को दाओ से बुला रहा हूं। और यह सब मैं अपने या मैपिंग के लिए ibatis का उपयोग कर रहा हूँ। जब मैं JUnit परीक्षण के आधार पर अपना परीक्षण का मामला चलाने यह मुझे एक अपवाद दे रहा है:

" org.apache.commons.dbcp.SQLNestedException: Cannot load JDBC driver class 'org.hsqldb.jdbcDriver' 
    at org.apache.commons.dbcp.BasicDataSource.createConnectionFactory(BasicDataSource.java:1259) 
    at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1192) 
    at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:884) 
    at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:113) 
    at org.springframework.jdbc.datasource.TransactionAwareDataSourceProxy$TransactionAwareInvocationHandler.invoke(TransactionAwareDataSourceProxy.java:213) 
    ... 35 more 
Caused by: java.lang.ClassNotFoundException: org.hsqldb.jdbcDriver 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:307) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:248) 
    at java.lang.Class.forName0(Native Method) 
    at java.lang.Class.forName(Class.java:169) 
    at org.apache.commons.dbcp.BasicDataSource.createConnectionFactory(BasicDataSource.java:1253) 
    ... 39 more 
" 
+0

से बेकार बेकार स्टैकट्रैक –

+1

@ जिगर: मैं उन्हें बहुत कम से अधिक स्टैकट्रैक पोस्ट करने के बजाय देखता हूं। –

उत्तर

10

को डाउनलोड करने और से here

+0

यदि आप इस – Chitresh

+0

को हल करने के लिए कोई अन्य सुझाव नहीं हैं, तो इसके अलावा मैं अपने क्लासपाथ में जार नहीं जोड़ सकता हूं ??, * कोई अन्य समाधान मौजूद नहीं है * –

+0

@Chitresh: क्योंकि यह एकमात्र सही समाधान है, आप भाग्य से बाहर हैं। –

1

वर्ग रास्ते में HSQLDB जार को जोड़ कर आप पहले से ही HSQLDB जार फ़ाइल डाउनलोड की और है ठीक से स्थापित किया गया तो मैं कक्षापथ की जांच करूँगा।

+0

यदि इसे क्लासपाथ में जोड़ने के बिना करना है तो मैं कैसे कर सकता हूं। मुझे अपने tomcat lib में एक जार जोड़ने का एक समाधान मिला, लेकिन यह मुझे भी एक ही अपवाद दे रहा है। क्या आपको कोई विचार है कि – Chitresh

+0

को कैसे हल किया जाए, शायद आपको अपने निर्माण पथ में जोड़ना चाहिए। मुझे लगता है कि आप ग्रहण का उपयोग कर रहे हैं, फिर अपने प्रोजेक्ट में राइट क्लिक करें, गुण क्लिक करें और फिर इसे अपने बिल्ड पथ में जोड़ें। आपने अपनी जार फ़ाइल कहां रखी? और कैसे? आप फ़ाइल को अपनी परियोजना की एक lib निर्देशिका में खींच और छोड़ सकते हैं। – Luixv

4

पिछले उत्तर यहां सही थे, और गलत थे।

एचएसक्यूएलडीबी जार को क्लासपाथ में जोड़ा जाना चाहिए। समस्या पिछले उत्तरों में है कि इस परियोजना के पुराने संस्करणों पर प्रश्नकर्ता की ओर इशारा किया जा रहा था, जिसमें वह कक्षा नहीं थी जिसे वे ढूंढ रहे थे। जो वर्ग नहीं मिला था, वह केवल http://sourceforge.net/projects/hsqldb/files/hsqldb/hsqldb_2_3/

+0

धन्यवाद, वह भाग्यशाली था कि आपने कल जवाब दिया था! –

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