我知道之前曾有人问过这个问题,但这不是重复的。我已经将mysql连接器jarfile包含到项目的构建路径中(因此,对先前提出的问题的答案没有帮助)。使用测试驱动程序调用数据库类时,该连接有效,但将Tomcat与servlet一起使用时,该连接不起作用。我真的不确定是什么问题。这是我的构造函数代码,它为mysql创建数据库连接:
import java.sql.*;
public class DatabaseManager {
private Connection con;
private Statement st;
private ResultSet rs;
public DatabaseManager()
{
System.out.println("Connecting to database");
try {
Class.forName("com.mysql.cj.jdbc.Driver");
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydatabase","username","password");
st=con.createStatement();
}
catch(Exception e)
{
System.out.println("Cannot connect to database. Error: " + e);
return;
}
System.out.println("Connection Successful");
}
}
我在测试驱动程序中调用此构造函数(使用主方法入口点),并且连接有效(不引发异常)。但是,当尝试在servlets doPost()方法(使用servlet类api)中调用同一类时,出现上面标记的错误。 Servlet代码很简单:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
DatabaseManager manager = new DatabaseManager();
}
测试驱动程序,Servlet和DBManager都在同一个项目中。我只是使用测试驱动程序进行测试。