Java-сервлеты Murach 3-е издание NullPointerException при записи в базу данных из приложения

0

Я работаю с Murach Java Servlets и JSP 3rd edition и испытываю трудности с проектом ch12email (который можно скачать с murach.com). Моя проблема заключается в том, что при запуске приложения и вводе данных в форму и отправке я получаю следующую ошибку HTTP Status 500:

java.lang.NullPointerException
    murach.data.ConnectionPool.getConnection(ConnectionPool.java:32)
    murach.data.UserDB.emailExists(UserDB.java:80)
    murach.email.EmailListServlet.doPost(EmailListServlet.java:39)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:661)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

Здесь происходит ошибка:

public Connection getConnection() {
    try {
        return dataSource.getConnection();
    } catch (SQLException e) {
        System.out.println(e);
        return null;
    }
}

И этот конструктор класса:

private ConnectionPool() {
    try {
        InitialContext ic = new InitialContext();
        dataSource = (DataSource) ic.lookup("java:/comp/env/jdbc/murach");
        //dataSource = (DataSource) ic.lookup("jdbc/murach");
    } catch (NamingException e) {
        System.out.println(e);
    }
}

Тем не менее, я могу подключиться к базе данных в Netbeans и просматривать или редактировать данные в базе данных. Это тег Resource в файле context.xml для информации пользователя и пароля базы данных:

<Resource name="jdbc/murach" auth="Container" 
    driverClassName="com.mysql.jdbc.Driver" 
    url="jdbc:mysql://localhost:3306/murach" 
    username="root" password="67890"
    maxActive="100" maxIdle="30" maxWait="10000" 
    logAbandoned="true" removeAbandoned="true" 
    removeAbandonedTimeout="60" type="javax.sql.DataSource" />

Я не совсем уверен, какая информация потребуется для тщательного устранения этой проблемы, поэтому, пожалуйста, дайте мне знать, какая информация поможет, и я обязательно ее поставлю!

Теги:
jsp
jdbc

2 ответа

0

Я никогда не нашел решения, но смог установить его на виртуальную машину Windows 7, выполнив следующие шаги в книге, как обычно. Впоследствии я переместил все свои файлы на внешнюю и переустановленную Windows 10 на моем ноутбуке (на машине, у которой была проблема). После этого я снова последовал инструкциям книги, и это сработало. Спасибо всем, кто нашел время, чтобы попытаться помочь!

0

У вас есть ресурс ref, определенный в web.xml

<resource-ref>
  <res-ref-name>jdbc/murach</res-ref-name>
  <res-type>javax.sql.DataSource</res-type>
  <res-auth>Container</res-auth>
</resource-ref>

Ещё вопросы

Сообщество Overcoder
Наверх
Меню