정수리
309
2015-08-05 00:20:08
3
4367

HTTP Status 500 - java.lang.NullPointerException


지금 책을따라 쇼핑몰을 만들고 있습니다.

상품등록을 하면 500  java.lang.NullPointerException 뜹니다..

db에는 정상적으로 들어가는 것을 확인하였습니다ㅜ.ㅜ

등록을하면 등록된 상품리스트쪽으로 넘어가는데 그게 안되네요 ㅜ.ㅜ

심각: Servlet.service() for servlet [jnmk.admin.goods.action.AdminGoodsFrontController] in context with path [/jBasket] threw exception [java.lang.NullPointerException] with root cause

java.lang.NullPointerException

at org.apache.jsp.admingoods.admin_005fgoods_005flist_jsp._jspService(admin_005fgoods_005flist_jsp.java:165)

at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)

at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:439)

at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)

at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)

at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)

at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:748)

at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:486)

at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:411)

at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:338)

at jnmk.admin.goods.action.AdminGoodsFrontController.processRequest(AdminGoodsFrontController.java:86)

at jnmk.admin.goods.action.AdminGoodsFrontController.doGet(AdminGoodsFrontController.java:19)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:624)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)

at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)

at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)

at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:957)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:423)

at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1079)

at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:620)

at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:318)

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)

at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)

at java.lang.Thread.run(Thread.java:745)


0
  • 답변 3

  • 초보람보
    639
    2015-08-05 01:29:59

    흠...

    질문 하실 때 에러 로그와 소스를 같이 올려주세요.

    원인(소스) 없이 결과(에러)가 만들어지진 않습니다.

    결과만 보고 원인을 유추하라는 건.... 

    ====================================================================

    에러 로그 중에 맨 위쪽에 admin_005fgoods_005flist_jsp.java:165 라고 나오는데 짐작컨데

    admin_005fgoods_005flist.jsp 파일이 있는데 java 로 변환 후 실행했을 때

    165 라인에서 Null 참조가 발생했다는 이야기 입니다.

    이게 유추할 수 있는 끝이네요.

  • zepinos
    20k
    2015-08-05 10:06:24
    tomcat 이라면 class 파일이 work 디렉토리에 생성됩니다. 파일명은 admin_005fgoods_005first_jsp.java 라고 해서요. 그 파일을 찾아서 165 라인을 보시면 에러 원인을 알 수 있을 겁니다.
  • choijinwook
    110
    2015-08-05 11:41:50

    제가 봐선 Controller 이하 Service나 DAO문제가 아니라 JSP 문제인듯 합니다.


    위에 분이 말씀 하신 것은 모든 WAS는 고유한 로직을 가지고 있겠지만.... 대부분이 JSP를 Servlet java 파일로 변환작업을 합니다. 그리고 이 것을 컴파일 하여 HTTP Response Body에 그 내용을 실어 보내지요...해서 tomcat 디렉토리에 보시면 webapps 바로 아래에 아마도 work 폴더가 있을 것입니다.


    여기에 해당 패키지 주소를 보시면서 폴더를 찾아 들어가시다 보면 admin_005fgoods_005first_jsp.java 라는 java 파일을 발견하실 수 있을 것입니다. 여기에 165번째줄에 보면 NullPointerException이 나는 이유를 발견하실 수 있으실 것입니다.


    아래 그림은 저의 로컬 Eclipse에서 tomcat을 구동하였을 때 workspace에서 index.jsp가 어떻게 index_jsp.java가 되는지 보여주고 있습니다. Eclipse에서 tomcat을 사용중이라면 workspace의 .metadata를 확인하시고, 다이렉트로 tomcat에 deploy하셨다면 해당 tomcat 설치 디렉토리의 work 디렉토리를 보시면 될 것입니다.




  • 로그인을 하시면 답변을 등록할 수 있습니다.