2014-11-05 6 views
-1

Мой метод doPost продолжает бросать исключение NullPointerException.Servlet doPost throwing NullPointerException

java.lang.NullPointerException 
Controller.doPost(Controller.java:76) 
javax.servlet.http.HttpServlet.service(HttpServlet.java:644) 
javax.servlet.http.HttpServlet.service(HttpServlet.java:725) 
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 

Line 76 звонит запрос для запуска через MySQL

results = DAO.runQuery(Query); 

запрос извлекается из текстового поля

String Query = request.getParameter("textarea"); 

То, что я предполагаю, что происходит в том, что запрос не получая что-либо из textarea, и поэтому генерируется исключение nullpointer, но я просто не могу понять, почему он не получает текст.

Любая помощь будет принята с благодарностью.

+1

Единственный способ, которым эта линия могла бы вызывать NPE, - это 'DAO'' null. Таким образом, вы либо не показываете нам правильную линию, либо ничего не показываете нам правильную стеклу. –

ответ

1

Ваш объект DAO имеет значение NULL. Посмотрите выше строки 76, чтобы увидеть, где она (или должна была быть) создана.

+0

ОК, DAO объявляется здесь: DAO = новый DAO (DBEngine.getConnection()); 'который получает соединение MySQL nn 'DBEngine = new Engine (" jdbc: mysql: // localhost: 3306/project4 "," root "," ");' Так что что-то неправильно связано с базой данных. Спасибо. – Ryan

+0

Я тебе не верю. :) NPE происходит, когда вы что-то разыскиваете. Единственное, что разыменовано в строке 76, - это DAO. Любое другое разыменование происходит в другой строке и будет сообщать о другой ошибке. Я уверен, что из-за этого DAO является нулевым. Я предлагаю вам посмотреть между созданием DAO и его использованием в строке 76 и посмотреть, может ли переменная DAO быть перезаписана (другой поток?) –

+0

Я просто использовал другого пользователя, кроме пользователя root для MySQL, и больше не генерирует исключение. – Ryan

Смежные вопросы