Java-сервлеты Murach 3-е издание NullPointerException при записи в базу данных из приложения - PullRequest
0 голосов
/ 29 мая 2018

Я работаю с сервлетами Murach Java и 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" />

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

Ответы [ 2 ]

0 голосов
/ 30 мая 2018

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

0 голосов
/ 29 мая 2018

У вас есть ссылка на ресурс, определенная в 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...