2014-01-31 9 views
0

Я создал простую страницу JSP и сделал сервлет UserController.java, который находится внутри пакета com.pro3.controller. На странице jsp у меня есть форма с методом get. Когда я отправить форму он терпит неудачу с исключением следующего:Почему я получаю эту ошибку HTTP-статуса 500?

HTTP Status 500 - javax.servlet.ServletException: Ошибка инстанцировании сервлет класса com.pro3.controller.UserController

-------------------------------------------------------------------------------- 

type Exception report 

message javax.servlet.ServletException: Error instantiating servlet class com.pro3.controller.UserController 

description The server encountered an internal error that prevented it from fulfilling this request. 

exception 

org.apache.jasper.JasperException: javax.servlet.ServletException: Error instantiating servlet class com.pro3.controller.UserController 
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:502) 
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:412) 
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313) 
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:723) 


root cause 

javax.servlet.ServletException: Error instantiating servlet class com.pro3.controller.UserController 
    org.apache.jasper.runtime.PageContextImpl.doForward(PageContextImpl.java:709) 
    org.apache.jasper.runtime.PageContextImpl.forward(PageContextImpl.java:680) 
    org.apache.jsp.index_jsp._jspService(index_jsp.java:62) 
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:723) 
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:388) 
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313) 
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:723) 


root cause 

java.lang.NullPointerException 
    java.util.Properties$LineReader.readLine(Properties.java:418) 
    java.util.Properties.load0(Properties.java:337) 
    java.util.Properties.load(Properties.java:325) 
    com.pro3.util.DbUtil.getConnection(DbUtil.java:26) 
    com.pro3.dao.UserDao.<init>(UserDao.java:19) 
    com.pro3.controller.UserController.<init>(UserController.java:27) 
    sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
    sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) 
    sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) 
    java.lang.reflect.Constructor.newInstance(Constructor.java:513) 
    java.lang.Class.newInstance0(Class.java:355) 
    java.lang.Class.newInstance(Class.java:308) 
    org.apache.jasper.runtime.PageContextImpl.doForward(PageContextImpl.java:709) 
    org.apache.jasper.runtime.PageContextImpl.forward(PageContextImpl.java:680) 
    org.apache.jsp.index_jsp._jspService(index_jsp.java:62) 
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:723) 
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:388) 
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313) 
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:723) 

кто-нибудь помочь мне с этой проблемой.

public class DbUtil 
{ 
    public static Connection connection = null; 

    public static Connection getConnection() 
    { 
     if(connection!=null) 
      return connection; 
     else 
     { 
      try 
      { 
       Properties prop=new Properties(); 
       InputStream inputStream=DbUtil.class.getClassLoader().getResourceAsStream("/db.properities"); 
       prop.load(inputStream); 

       String driver=prop.getProperty("driver"); 
       String url=prop.getProperty("url"); 
       String user=prop.getProperty("user"); 
       String password=prop.getProperty("password"); 

       Class.forName(driver); 
       connection=DriverManager.getConnection(url,user,password); 

      }catch(ClassNotFoundException e){ 
       e.printStackTrace(); 

Это Исключение нулевого указателя:

public class UserController extends HttpServlet 
{ 
    private static final long serialVersionUID = 1L; 
    private static String INSERT_OR_EDIT="/user.jsp"; 
    private static String LIST_USER="/listuser.jsp"; 
    private UserDao dao; 

    public UserController() 
    { 
     super(); 
     dao = new UserDao(); 
    } 
     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 
     { 
      String forward=""; 
      String action = request.getParameter("action"); 

      if(action.equalsIgnoreCase("delete")) 
      { 
       int userId=Integer.parseInt(request.getParameter("userid")); 
       dao.deleteUser(userId); 
       forward=LIST_USER; 
       request.setAttribute("users", dao.getAllUsers()); 
      } 
      else if(action.equalsIgnoreCase("edit")) 
      { 
       forward=INSERT_OR_EDIT; 
       int userId=Integer.parseInt(request.getParameter("userid")); 
       User user=dao.getUserById(userId); 
       request.setAttribute("user", user); 
      } 
      else if(action.equalsIgnoreCase("listUser")) 
      { 
       forward=LIST_USER; 
       request.setAttribute("users", dao.getAllUsers()); 
      } 
      else 
      { 
       forward=INSERT_OR_EDIT; 
      } 
      RequestDispatcher view=request.getRequestDispatcher(forward); 
      view.forward(request, response); 
     } 

     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 
     { 
     User user=new User(); 
     user.setFirstName(request.getParameter("firstname")); 
     user.setLastName(request.getParameter("lastname")); 
     try 
     { 
      Date dob = new SimpleDateFormat("dd/mm/yyyy").parse(request.getParameter("dob")); 
      user.setDob(dob); 
     } 
     catch(ParseException e) 
     { 
      e.printStackTrace(); 
     } 
     user.setEmail(request.getParameter("email")); 
     String userid=request.getParameter("userid"); 
     if(user==null||userid.isEmpty())  
     { 
      dao.addUser(user); 
     } 
     else 
     { 
      user.setUserid(Integer.parseInt(userid)); 
      dao.updateUser(user); 
     } 
     RequestDispatcher view=request.getRequestDispatcher(LIST_USER); 
     request.setAttribute("users", dao.getAllUsers()); 
     view.forward(request, response); 
    } 
} 

Пабло Лозано: Он нашел ошибку, а затем заболел сделать это тогда, теперь я получаю такую ​​ошибку.

HTTP Status 500 - java.lang.NullPointerException

------------------------------- ------------------------------------------------- тип

отчет сообщение об исключении java.lang.NullPointerException

описание сервер обнаружил внутреннюю ошибку, которая мешала ему от выполнения этого запроса.

исключение

org.apache.jasper.JasperException: java.lang.NullPointerException org.apache.jasper.servlet.JspServletWrapper.handleJspException (JspServletWrapper.java:502) org.apache. jasper.servlet.JspServletWrapper.service (JspServletWrapper.java:430) org.apache.jasper.servlet.JspServlet.serviceJspFile (JspServlet.java:313) org.apache.jasper.servlet.JspServlet.service (JspServlet.java: 260) javax.servlet.http.HttpServlet.service (HttpServlet.java:723)

rootcause

java.lang.NullPointerException

com.pro3.dao.UserDao.getAllUsers (UserDao.java:74) com.pro3.controller.UserController.doGet (UserController. Java: 51) javax.servlet.http.HttpServlet.service (HttpServlet.java:617) javax.servlet.http.HttpServlet.service (HttpServlet.java:723) org.apache.jasper.runtime.PageContextImpl.doForward (PageContextImpl.java:709) org.apache.jasper.runtime.PageCon textImpl.forward (PageContextImpl.java:680) org.apache.jsp.index_jsp._jspService (index_jsp.java:62) org.apache.jasper.runtime.HttpJspBase.service (HttpJspBase.java:70) javax.servlet .http.HttpServlet.service (HttpServlet.java:723) org.apache.jasper.servlet.JspServletWrapper.service (JspServletWrapper.java:388) org.apache.jasper.servlet.JspServlet.serviceJspFile (JspServlet.java:313) org.apache.jasper.servlet.JspServlet.service (JspServlet.java:260) javax.servlet.http.HttpServlet.service (HttpServlet.java:723)

ответ

0
DbUtil.class.getClassLoader().getResourceAsStream("/db.properities"); 

Попробуйте написать db.properties вместо db.properities

+0

Вы пытаетесь найти файл свойств, но имя файла написано с ошибкой –

0

Здесь сказано java.lang.NullPointerException, поэтому есть объект, который не создается. Я предполагаю, что вы используете java.lang.Propertis#load(InputStream) в своем com.pro3.util.DbUtil.getConnection, поэтому вы, вероятно, создаете его (если вообще) неправильно.

Итак, вы не можете использовать getResourceAsStream из своего DbUtils.class (я предполагаю, что если вы только поместите свои ptoperties в один и тот же пакет, он будет работать). Пожалуйста, find out как правильно загрузить свойства в Servlet.

+0

Прежде всего, пожалуйста, поделиться 'DbUtil.getConnection()' метод, так что мы можем узнать, как вы создаете 'InputStream'. –

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