Не удается подключиться к базе данных MS Access в Tomcat - PullRequest
0 голосов
/ 10 августа 2011

У меня проблемы с подключением к базе данных MS Access через сервлет в Tomcat.Это работало раньше, но это больше не так, и я совершенно сбит с толку.Код моего сервлета:

import java.io.*;
import java.sql.*;
import javax.servlet.ServletException;
import javax.servlet.http.*;
import java.util.*;

public class TestServlet extends HttpServlet {
  public void doGet(HttpServletRequest request,
                 HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
  PrintWriter out = response.getWriter();
 try {
       Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
       String dataSourceName = "mdbTest";
       String dbURL = "jdbc:odbc:" + dataSourceName;
       Connection conn = DriverManager.getConnection(dbURL ,"","");
       String SEARCH = "SELECT * FROM User_Table WHERE ID = ?";
       PreparedStatement p = conn.prepareStatement(SEARCH, ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
       p.setInt(1, 68);
       ResultSet rs = p.executeQuery();
       rs.first();
       out.println(rs.getString("Name"));
} catch (ClassNotFoundException e) {
       out.println("Class not found");
       e.printStackTrace();
}
catch (SQLException e) {
       out.println(e);
       e.printStackTrace();
    }
  }
}

Я получаю сообщение java.sql.SQLException: [Microsoft] [ODBC Microsoft Access Driver] Не удалось найти файл «(неизвестно)».

КогдаЯ делаю это с помощью автономного приложения, однако оно работает нормально и печатает нужное значение:

import java.io.*;
import java.sql.*;
import javax.servlet.ServletException;
import javax.servlet.http.*;
import java.util.*;
public class Tester1 {
  public static void main (String[] args) 
  {
    try {
       Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
       String dataSourceName = "mdbTest";
       String dbURL = "jdbc:odbc:" + dataSourceName;
       Connection conn = DriverManager.getConnection(dbURL ,"","");
       String SEARCH = "SELECT * FROM User_Table WHERE ID = ?";
       PreparedStatement p = conn.prepareStatement(SEARCH, ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
       p.setInt(1, 68);
       ResultSet rs = p.executeQuery();
       rs.first();
       out.println(rs.getString("Name"));
    } catch (ClassNotFoundException e) {
       out.println("Class not found");
       e.printStackTrace();
    }
    catch (SQLException e) {
       out.println(e);
       e.printStackTrace();
    }
  }
}

Что происходит?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...