Получение Tomcat и MySQL для общения друг с другом в NetBeans - PullRequest
1 голос
/ 11 октября 2010

Перестроив мой компьютер с Windows 7, я пытаюсь запустить Tomcat под NetBeans для подключения к MySQL.

Я считаю, что с MySQL все в порядке, потому что различные инструменты корректно получают данные.Но когда мое веб-приложение на Java запускается из NetBeans, Tomcat показывает домашнюю страницу, но затем выдает ошибку нулевого указателя Java.Журналы говорят мне, что это связано с получением пользовательских данных из базы данных.Поэтому я предполагаю, что два компонента системы не могут общаться друг с другом.Но почему?

У меня есть mySQLConnector в библиотеке NetBeans, которую использует мое веб-приложение.Я поместил MySQL Connector в папку конфигурации Tomcat, MySQL Connector также находится в пути к классам ПК.Файл context.xml в веб-приложении настроен на использование пользователя root в MySQL, а все соответствующие полномочия в MySQL установлены.

Но я ничего не получаю!Хотя у меня есть те же инструменты на другом ПК, и они в порядке.

Есть идеи?Есть ли что-то, что я пропустил?

Журнал Apache, когда я запускаю приложение:

11-Oct-2010 11:42:15 org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet IndexServlet threw exception

java.lang.NullPointerException
        at visualRSS.index.Index_Servlet.doGet(Index_Servlet.java:91)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
        at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:555)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
        at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:859)
        at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:579)
        at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1555)
        at java.lang.Thread.run(Thread.java:619)

Строка в visualRSS.index.Index_Servlet.doGet (Index_Servlet.java:91) ссылаетсяна

User user = User_DB.get(userNo);
activeUser = Active_User_Writer.write(request, user, Valid.FALSE);

В моем коде получить пользователя из БД.Но ничего ... Я предполагаю, что это проблема конфигурации, поскольку этот код работает на другом ПК.

Код для получения пользователя из базы данных выглядит следующим образом:

// Gets a User.
public static User get(String userNo) {
    ConnectionPool_DB pool = ConnectionPool_DB.getInstance();
    Connection connection = pool.getConnection();
    PreparedStatement ps = null;
    ResultSet rs = null;

    String query = ("SELECT * " +
                    "FROM User " +
                    "WHERE UserNo = ?;");

    try {
        System.out.println("Debug userNo: " + userNo);
        ps = connection.prepareStatement(query);
        ps.setString(1, userNo);
        rs = ps.executeQuery();
        System.out.println("Debug query: " + query);
        if (rs.next()) {                
            User u = new User();
            u.setUserNo(rs.getString("UserNo"));
            ...
            System.out.println("Debug: get User");
            return u;
        }
        else {
            System.out.println("Debug: error");
            return null;
        }
    }
    catch(Exception ex) {
        logger.error("Error getting User " + userNo + "\n", ex);
        return null;
    }
    finally {
        Database_Utils.closeResultSet(rs);
        Database_Utils.closePreparedStatement(ps);
        pool.freeConnection(connection);
    }
}

Спасибо

Мистер Морган.

...