Я потратил 2 дня, пытаясь выяснить, почему мой сервлет не подключается к базе данных MySQL.
У меня установлен и работает MySQL и Eclipse.
Всякий раз, когда я пытаюсь установить соединение, я получаю ClassNotFoundException
для com.mysql.jdbc.Driver
, который на самом деле правильно импортируется. Разъем, который я использую, - это mysql-connector-java5.1.14
, добавленный в качестве внешней банки, поэтому все выглядит нормально. Вот мой код:
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String dbUrl="jdbc:mysql://localhost:3306/test";
String username="root";
String password="";
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
conn=DriverManager.getConnection(dbUrl);
System.out.println("Connected!");
} catch (SQLException e) {
e.printStackTrace();
System.out.println("not connected");
} catch(ClassNotFoundException x){
x.printStackTrace();
} catch(Exception e){
e.printStackTrace();
}
}
Вот часть трассировки стека:
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1645)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1491)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:375)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:164)
Я выполняю шаги подключения из опубликованной книги по Java. В форумах и учебных пособиях я просто вижу один и тот же код, не могу понять, почему выбрасывается это исключение.
В обычном приложении, которое не запускается на сервере, исключение не генерируется, и соединение (точно так же) успешно устанавливается.
У вас есть какой-нибудь совет?