|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Aug 2005
Città: Wien
Messaggi: 435
|
[JAVA - DBCP] Problema con i driver jdbc
Ciao a tutti,
è due giorni che cerco di implementare il connection pooling nella mia web-application. Per questo utilizzo la libreria DBCP di apache. Il problema è che mi ritorna sempre la solita eccezione al momento di creare il data-source, cioè non riesce a trovare il driver. Con la classe che utilizzavo prima (senza connection-pooling) questo problema non lo avevo, ed il driver è sempre nella build-path in netbeans. Codice:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package it.unibz.inf.wobda.db;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import org.apache.tomcat.dbcp.dbcp.BasicDataSource;
import javax.sql.DataSource;
/**
*
* @author giorgio
*/
public class DBPool {
public static DataSource theDataSource;
public static void setUpDatasource(WonderDataSource theSource) throws ClassNotFoundException {
Class.forName(theSource.getDriver());
BasicDataSource ds = new BasicDataSource();
ds.setDriverClassName(theSource.getDriver());
ds.setUsername(theSource.getUser());
ds.setPassword(theSource.getPwd());
ds.setUrl(theSource.getDriver());
theDataSource = ds;
}
public static void getDataSourceStats(DataSource ds) throws SQLException {
String res = "";
BasicDataSource bds = (BasicDataSource) ds;
res += "NumActive: " + bds.getNumActive() + "\n";
res += "NumIdle: " + bds.getNumIdle();
}
public static void shutdownDataSource(DataSource ds) throws SQLException {
BasicDataSource bds = (BasicDataSource) ds;
bds.close();
}
public static Connection getConnection() throws SQLException {
return theDataSource.getConnection();
}
public static void executeQuery(QueryMediator aMediator, String sql) throws SQLException {
aMediator.setStmt(aMediator.getConn().createStatement());
aMediator.setRset(aMediator.getStmt().executeQuery(sql));
}
}
Codice:
GRAVE: QueryManager: SQLException org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class 'oracle.jdbc.driver.OracleDriver' for connect URL 'oracle.jdbc.driver.OracleDriver' at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1150) at org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:880) at it.unibz.inf.wobda.db.DBPool.getConnection(DBPool.java:46) at it.unibz.inf.wobda.queryprocessing.obda.OBDAInterface.query(OBDAInterface.java:106) at it.unibz.inf.wobda.queryprocessing.obda.OBDAInterface.performQuery(OBDAInterface.java:98) at it.unibz.inf.wobda.servlets.queryanswering.QueryManager.processRequest(QueryManager.java:90) at it.unibz.inf.wobda.servlets.queryanswering.QueryManager.doPost(QueryManager.java:189) at javax.servlet.http.HttpServlet.service(HttpServlet.java:637) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) at java.lang.Thread.run(Thread.java:636) Caused by: java.sql.SQLException: No suitable driver at java.sql.DriverManager.getDriver(DriverManager.java:279) at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1143) ... 20 more Vi prego aiutatemi, non so più che pesci pigliare. Giorgio
__________________
"Sono 126 miglia per Chicago. Abbiamo il serbatoio pieno, mezzo pacchetto di sigarette, è buio, e portiamo tutt'e due gli occhiali da sole" |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Aug 2005
Città: Wien
Messaggi: 435
|
C'era un piccolo errore nella dichiarazione di un import, ora ho modificato ma il risultato finale è sempre lo stesso
Codice:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package it.unibz.inf.wobda.db;
import java.sql.Connection;
import java.sql.SQLException;
import org.apache.commons.dbcp.BasicDataSource;
import javax.sql.DataSource;
/**
*
* @author giorgio
*/
public class DBPool {
public static DataSource theDataSource;
public static void setUpDatasource(WonderDataSource theSource) throws ClassNotFoundException {
BasicDataSource ds = new BasicDataSource();
ds.setDriverClassName("oracle.jdbc.driver.OracleDriver");
ds.setUsername(theSource.getUser());
ds.setPassword(theSource.getPwd());
ds.setUrl(theSource.getDriver());
theDataSource = ds;
}
public static String getDataSourceStats(DataSource ds) throws SQLException {
String res = "";
BasicDataSource bds = (BasicDataSource) ds;
res += "NumActive: " + bds.getNumActive() + "\n";
res += "NumIdle: " + bds.getNumIdle();
return res;
}
public static void shutdownDataSource(DataSource ds) throws SQLException {
BasicDataSource bds = (BasicDataSource) ds;
bds.close();
}
public static Connection getConnection() throws SQLException {
return theDataSource.getConnection();
}
public static void executeQuery(QueryMediator aMediator, String sql) throws SQLException {
aMediator.setStmt(aMediator.getConn().createStatement());
aMediator.setRset(aMediator.getStmt().executeQuery(sql));
}
}
Codice:
GRAVE: QueryManager: SQLException org.apache.commons.dbcp.SQLNestedException: Cannot create JDBC driver of class 'oracle.jdbc.driver.OracleDriver' for connect URL 'oracle.jdbc.driver.OracleDriver' at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1150) at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:880) at it.unibz.inf.wobda.db.DBPool.getConnection(DBPool.java:43) at it.unibz.inf.wobda.queryprocessing.obda.OBDAInterface.query(OBDAInterface.java:106) at it.unibz.inf.wobda.queryprocessing.obda.OBDAInterface.performQuery(OBDAInterface.java:98) at it.unibz.inf.wobda.servlets.queryanswering.QueryManager.processRequest(QueryManager.java:90) at it.unibz.inf.wobda.servlets.queryanswering.QueryManager.doPost(QueryManager.java:189) at javax.servlet.http.HttpServlet.service(HttpServlet.java:637) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) at java.lang.Thread.run(Thread.java:636) Caused by: java.sql.SQLException: No suitable driver at java.sql.DriverManager.getDriver(DriverManager.java:279) at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1143) ... 20 more
__________________
"Sono 126 miglia per Chicago. Abbiamo il serbatoio pieno, mezzo pacchetto di sigarette, è buio, e portiamo tutt'e due gli occhiali da sole" |
|
|
|
|
|
#3 |
|
Junior Member
Iscritto dal: May 2010
Messaggi: 1
|
Credo che l'errore sia l'utilizzo di 'oracle.jdbc.driver.OracleDriver'. Infatti lo stack dice 'not suitable' e cioè che quel driver è deprecato. Dalla versione 9 di Oracle infatti il driver corretto è 'oracle.jdbc.OracleDriver'.
Spero di esserti stato di aiuto. Zimo78 |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 23:42.



















