0

getPart()를 사용하려고 할 때 널 포인터 예외가 발생하며 null을 반환하는 대신 예외를 던지는 이유를 이해할 수 없습니다. 여기에 JSP에서 내 양식이다 :이 SO post을 읽은 후Java getPart() null 포인터 예외를 던지고

public void doPost(HttpServletRequest req, HttpServletResponse resp) { 
    try { 
      Part filePart = req.getPart("hotel_file"); //this line throws null pointer exception 
      getServletContext().getRequestDispatcher("/import.jsp").forward(req, resp); 

    } catch(Exception e) { 

      e.printStackTrace(); 
    } 
} 

, 나는 서블릿 클래스와 I에 @MultipartConfig 주석을 추가 : 그럼 내 서블릿에서, 나는 다음과 같은 코드가

<form onsubmit="return check()" method="post" enctype="multipart/form-data" action="/TrainingServlet"> 
    <input id="hotel_file" type="file" name="hotel_file" size="30"> 
</form> 

req.getPart() 줄에서 여전히 NPE를 얻습니다. 또한 JBoss 6에서 서블릿을 실행 중입니다. 어떤 통찰력도 감사하겠습니다!

여기

16:50:15,227 ERROR [STDERR] java.lang.NullPointerException 
16:50:15,228 ERROR [STDERR] at org.apache.catalina.connector.Request.getPart(Request.java:3225) 
16:50:15,228 ERROR [STDERR] at org.apache.catalina.connector.RequestFacade.getPart(RequestFacade.java:1102) 
16:50:15,229 ERROR [STDERR] at com.lanyon.training.javaproj.servlets.TrainingServlet.doPost(TrainingServlet.java:96) 
16:50:15,229 ERROR [STDERR] at javax.servlet.http.HttpServlet.service(HttpServlet.java:754) 
16:50:15,230 ERROR [STDERR] at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) 
16:50:15,230 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:324) 
16:50:15,231 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:242) 
16:50:15,231 ERROR [STDERR] at com.lanyon.ghotel.common.pagination.web.PaginationFilter.doFilter(PaginationFilter.java:77) 
16:50:15,232 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:274) 
16:50:15,232 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:242) 
16:50:15,233 ERROR [STDERR] at com.lanyon.common.serverobjects.UTF8EncodingFilter.doFilter(UTF8EncodingFilter.java:33) 
16:50:15,233 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:274) 
16:50:15,234 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:242) 
16:50:15,235 ERROR [STDERR] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275) 
16:50:15,235 ERROR [STDERR] at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) 
16:50:15,236 ERROR [STDERR] at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:181) 
16:50:15,236 ERROR [STDERR] at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:88) 
16:50:15,236 ERROR [STDERR] at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:100) 
16:50:15,237 ERROR [STDERR] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) 
16:50:15,237 ERROR [STDERR] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 
16:50:15,238 ERROR [STDERR] at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158) 
16:50:15,238 ERROR [STDERR] at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:567) 
16:50:15,239 ERROR [STDERR] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 
16:50:15,239 ERROR [STDERR] at org.jboss.web.tomcat.service.request.ActiveRequestResponseCacheValve.invoke(ActiveRequestResponseCacheValve.java:53) 
16:50:15,240 ERROR [STDERR] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:362) 
16:50:15,240 ERROR [STDERR] at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877) 
16:50:15,241 ERROR [STDERR] at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:654) 
16:50:15,241 ERROR [STDERR] at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:951) 
16:50:15,242 ERROR [STDERR] at java.lang.Thread.run(Thread.java:619) 
+0

의 transferTo() 메소드를 사용할 수는 – homegrown

+0

은 ** 96 ** 라인 번호가 게시'TrainingServlet.java' 당신이 주석 라인을 파일? –

+0

예 그렇습니다 ...... – homegrown

답변

0

다중 당신에게 바이트 스트림을 제공하는 스택 트레이스입니다. 파일로 변환해야합니다.

당신은 또한 PM77-1 스택 추적 @ 멀티

관련 문제