我使用 JDBI 在我的计算机上本地创建了一个项目,它与数据库接口没有任何问题。
我现在在 Tomcat 服务器上使用相同的项目。我正在编译我的代码,javac -cp "lib/*" cs5530/*.java
其中 lib 包含我所依赖的外部 jar,例如 jdbi-2.49.jar。
这段代码是我创建新 DBI 的地方。
public static DAO getDbConnection() {
MysqlDataSource ds = new MysqlDataSource();
ds.setServerName("server");
ds.setUser("user");
ds.setPassword("password");
ds.setDatabaseName("dbName");
DBI dbi = new DBI(ds);
return dbi.onDemand(DAO.class);
}
它在我的类构造函数中调用:
public Customer() {
this.conn = getDbConnection();
}
这是我得到的错误:
java.lang.NoClassDefFoundError: org/skife/jdbi/v2/DBI
cs5530.Customer.getDbConnection(Customer.java:85)
cs5530.Customer.<init>(Customer.java:31)
org.apache.jsp._1_jsp._jspService(_1_jsp.java:105)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
那么为什么它会在看到必要的类时编译得很好,然后在运行时出现问题,我将如何解决这个问题?
谢谢。