我在獲取我的OSGI程序以識別/利用mysql jdbc驅動程序時遇到了一些問題。OSGI中的JDBC驅動程序(Eclipse IDE)
我有一個專門用於將數據輸入到mysql數據庫的包。我已經複製了與測試程序(非OSGI)相同的所有方法。我無法創建一個連接起訴DriverManager.getConnection()。
我已經將驅動程序添加到類路徑中,並且嘗試了使用Class.forName()這個網站上的所有解決方案。可能我在forName()中輸入了錯誤的字符串arg。
public void createConn(String URL, String DBName, String username, String password){
try {
Class.forName("mysql-connector-java-5.1.14-bin.jar");
} catch (ClassNotFoundException e1) {
e1.printStackTrace();
}
try {
conn = DriverManager.getConnection(URL + DBName,username,password);
System.out.println("Connection Created");
stmt = conn.createStatement();
System.out.println("Statement Created");
//data = new ApplianceData();
//flag = true;
//this.writeThread = new Thread();
//writeThread.start();
} catch (SQLException e) {
System.err.println(e.getMessage());
}
}
誰能告訴我他們的Class.forName使用的參數();
有沒有人有解決這個問題或遇到此問題?
謝謝,接過ClassNotFound的異常的護理。現在我有一個錯誤,指出該驅動程序不適合。我知道OSGI有一些與司機等問題。有人可以推薦一種方法來繞過這個?
我已經將jdbc jar放在java安裝bin文件夾中,並放在了bundle的bin文件夾中。
ClassLoader DBHCL = ClassLoader.getSystemClassLoader();
DBHCL.loadClass("com.mysql.jdbc.Driver");
Class.forName("com.mysql.jdbc.Driver", true, DBHCL).newInstance();
System.out.println("Class Loaded");
//DriverManager.getDriver("jdbc:mysql://localhost/timedb");
//System.out.println("Driver Gotten");
conn = DriverManager.getConnection(URL + DBName,username,password);
System.out.println("Connection Created");
stmt = conn.createStatement();
System.out.println("Statement Created");
connFlag = true;
控制檯輸出,錯誤: 的OSGi>開始7 數據庫服務(MYSQL)啓動 類加載 找到JDBC沒有合適的驅動程序:MySQL的://本地主機/ timedb 異常在線程「Thread- 1「INSERT INTO appliance1 ...
有沒有人對此問題有所瞭解?
感謝
`Class.forName(「ClassNameIsExpectedHereNotJarName」);`` – Nishant 2011-01-28 07:14:30