public class Connect {
public static Connection getConnection(){
Connection con=null;
String db_source="databasesource";
String db_username="username";
String db_password="password";
if(con==null)
{
try {
Class.forName("com.ibm.db2.jcc.DB2Driver").newInstance();
con=DriverManager.getConnection("jdbc:db2:http://localhost:50000/"+db_source,db_username,db_password);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return con;
}
}
我在我的系统中安装了db2。
我创建了两个应用程序,一个是j2se,另一个是jsp(在tomcat 7上运行)。
我为j2se和jsp网站使用相同的代码,但此代码仅适用于j2se应用程序,而不适用于jsp网站。我不知道问题出在哪里。
jsp网站中的错误是:java.lang.ClassNotFoundException: com.ibm.db2.jcc.DB2Driver
行:Class.forName("com.ibm.db2.jcc.DB2Driver").newInstance();
我已多次重启tomcat,多次重启我的电脑。搜索谷歌,只找到上面的代码......
我的班级连接在jsp网站的src的admin包中,我正在使用eclipse Indigo for EE。
任何人的帮助都会很棒......
提前致谢。
EDIT : I've also added the db2jcc.jar in the projects from build path > add external jar
答案 0 :(得分:0)
似乎找不到那个班级。您确定Web应用程序中包含所有必需的*.jar
文件吗?您可以将J2SE应用程序的lib
目录与Web应用程序中的{{1}}目录进行比较。
答案 1 :(得分:0)
如果此代码在您的J2SE中有效,则意味着您需要在某个包含com.ibm.db2.jcc.DB2Driver
类(所谓的 JDBC驱动程序)的JAR文件中。这个JAR需要在Tomcat中可见。将其添加到/WEB-INF/lib
目录或Tomcat中的/lib
目录。
BTW您的代码需要进行一些审核:始终满足if(con==null)
,另一方面,如果发生错误,您将返回null
- 很少需要。另请阅读Java中的DataSource
概念。 Tomcat提供开箱即用的服务。
答案 2 :(得分:0)
DB2Driver
似乎无法使用class path
。您可以将其添加到工作应用程序目录中,或放置DB2Driver into tomcat lib directory
。
答案 3 :(得分:0)
java.lang.ClassNotFoundException: com.ibm.db2.jcc.DB2Driver
似乎找不到那个班级。因此,我建议将db2jcc.jar
放置在项目的/WEB-INF/lib
目录的物理位置。然后使用build path > add jar
过去很多次,如果jar不在物理位置,我会遇到ClassNotFoundException
。
然后重启Tomcat应该可以工作。