我在获取我的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