Dear users,
I would really aspirate some suggestions if possible regarding this issue. I have tried numerous combinations to try and solve this. I have now changed Excel framework to Apache POI HSSF but as yet and still unable to success read the InputStream to create the workbook via the SpringMVC. I believe I have what is required in place but yet I continually get NullPointerExceptions relation to the InputStream when I try to do anything with it.
I have tried upload the file and writing it to my local machine then re-opening it in Excel and that would correctly, hence I am at a lost as to why the application is not capable of passing the InputStream to my services layer and manipulating it from there.
Any help would really help me as I have now been stuck on this issues for a week and my deadline is starting to come under serious pressue.
Thank you
Code:
public ModelAndView onSubmit(HttpServletRequest request,
HttpServletResponse response, Object command,
BindException errors)
throws Exception {
FileUpload fileUpload = (FileUpload) command;
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
MultipartFile file = multipartRequest.getFile("file");
try {
byte[] data = file.getBytes();
InputStream stream = new ByteArrayInputStream(data);
hssfworkbook = new HSSFWorkbook(stream);
stream.close();
// read and commit the uploaded spreadsheet
mgr.readUploadedIntellectaulProperty(hssfworkbook);
}
// Stream could not be opened
catch(IOException ioe){
if(log.isDebugEnabled()){
log.debug("IOException created: "+ioe.getMessage());
ioe.printStackTrace();
}
errors.rejectValue("file",
"File could not be read",
new Object[] { fileUpload.getName() },
"File could not be read");
return showForm(request, response, errors);
}
return new ModelAndView(getSuccessView());
}
The error is as follows:
[java] [lips] DEBUG [http8080-Processor23] BaseCommandController.createCommand(267) | Creating new command of class [au.edu.tlf.lips.webapp.action.FileUpload]
[java] [lips] DEBUG [http8080-Processor23] SimpleFormController.processFormSubmission(222) | No errors -> processing submit
[java] [lips] ERROR [http8080-Processor23] FrameworkServlet.service(342) | Could not complete request
[java] java.lang.NullPointerException
[java] at au.edu.tlf.lips.webapp.action.FileUploadController .onSubmit(FileUploadController.java:85)
[java] at org.springframework.web.servlet.mvc.SimpleFormCont roller.processFormSubmission(SimpleFormController. java:223)
[java] at au.edu.tlf.lips.webapp.action.FileUploadController .processFormSubmission(FileUploadController.java:5 5)
[java] at org.springframework.web.servlet.mvc.AbstractFormCo ntroller.handleRequestInternal(AbstractFormControl ler.java:237)
[java] at org.springframework.web.servlet.mvc.AbstractContro ller.handleRequest(AbstractController.java:121)
[java] at org.springframework.web.servlet.mvc.SimpleControll erHandlerAdapter.handle(SimpleControllerHandlerAda pter.java:44)
[java] at org.springframework.web.servlet.DispatcherServlet. doService(DispatcherServlet.java:495)
[java] at org.springframework.web.servlet.FrameworkServlet.s ervice(FrameworkServlet.java:321)
[java] at javax.servlet.http.HttpServlet.service(HttpServlet .java:856)
[java] at org.apache.catalina.core.ApplicationFilterChain.in ternalDoFilter(ApplicationFilterChain.java:284)
[java] at org.apache.catalina.core.ApplicationFilterChain.do Filter(ApplicationFilterChain.java:204)
[java] at org.springframework.web.filter.CharacterEncodingFi lter.doFilterInternal(CharacterEncodingFilter.java :73)
[java] at org.springframework.web.filter.OncePerRequestFilte r.doFilter(OncePerRequestFilter.java:73)
[java] at org.apache.catalina.core.ApplicationFilterChain.in ternalDoFilter(ApplicationFilterChain.java:233)
[java] at org.apache.catalina.core.ApplicationFilterChain.do Filter(ApplicationFilterChain.java:204)
[java] at com.opensymphony.clickstream.ClickstreamFilter.doF ilter(ClickstreamFilter.java:42)
[java] at org.apache.catalina.core.ApplicationFilterChain.in ternalDoFilter(ApplicationFilterChain.java:233)
[java] at org.apache.catalina.core.ApplicationFilterChain.do Filter(ApplicationFilterChain.java:204)
[java] at au.edu.tlf.lips.webapp.filter.ActionFilter.doFilte r(ActionFilter.java:160)
[java] at org.apache.catalina.core.ApplicationFilterChain.in ternalDoFilter(ApplicationFilterChain.java:233)
[java] at org.apache.catalina.core.ApplicationFilterChain.do Filter(ApplicationFilterChain.java:204)
[java] at au.edu.tlf.lips.webapp.filter.BreadcrumbFilter.doF ilter(BreadcrumbFilter.java:185)
[java] at org.apache.catalina.core.ApplicationFilterChain.in ternalDoFilter(ApplicationFilterChain.java:233)
[java] at org.apache.catalina.core.ApplicationFilterChain.do Filter(ApplicationFilterChain.java:204)
[java] at org.springframework.orm.hibernate.support.OpenSess ionInViewFilter.doFilterInternal(OpenSessionInView Filter.java:170)
[java] at org.springframework.web.filter.OncePerRequestFilte r.doFilter(OncePerRequestFilter.java:73)
[java] at org.apache.catalina.core.ApplicationFilterChain.in ternalDoFilter(ApplicationFilterChain.java:233)
[java] at org.apache.catalina.core.ApplicationFilterChain.do Filter(ApplicationFilterChain.java:204)
[java] at org.displaytag.filter.ResponseOverrideFilter.doFil ter(ResponseOverrideFilter.java:88)
[java] at org.apache.catalina.core.ApplicationFilterChain.in ternalDoFilter(ApplicationFilterChain.java:233)
[java] at org.apache.catalina.core.ApplicationFilterChain.do Filter(ApplicationFilterChain.java:204)
[java] at au.edu.tlf.lips.webapp.filter.GZIPFilter.doFilter( GZIPFilter.java:51)
[java] at org.apache.catalina.core.ApplicationFilterChain.in ternalDoFilter(ApplicationFilterChain.java:233)
[java] at org.apache.catalina.core.ApplicationFilterChain.do Filter(ApplicationFilterChain.java:204)
[java] at org.apache.catalina.core.StandardWrapperValve.invo ke(StandardWrapperValve.java:257)
[java] at org.apache.catalina.core.StandardValveContext.invo keNext(StandardValveContext.java:151)
[java] at org.apache.catalina.core.StandardPipeline.invoke(S tandardPipeline.java:567)
[java] at org.apache.catalina.core.StandardContextValve.invo keInternal(StandardContextValve.java:245)
[java] at org.apache.catalina.core.StandardContextValve.invo ke(StandardContextValve.java:199)
[java] at org.apache.catalina.core.StandardValveContext.invo keNext(StandardValveContext.java:151)
[java] at org.apache.catalina.authenticator.AuthenticatorBas e.invoke(AuthenticatorBase.java:587)
[java] at org.apache.catalina.core.StandardValveContext.invo keNext(StandardValveContext.java:149)
[java] at org.apache.catalina.core.StandardPipeline.invoke(S tandardPipeline.java:567)
[java] at org.apache.catalina.core.StandardHostValve.invoke( StandardHostValve.java:184)
[java] at org.apache.catalina.core.StandardValveContext.invo keNext(StandardValveContext.java:151)
[java] at org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java:164)
[java] at org.apache.catalina.core.StandardValveContext.invo keNext(StandardValveContext.java:149)
[java] at org.apache.catalina.core.StandardPipeline.invoke(S tandardPipeline.java:567)
[java] at org.apache.catalina.core.StandardEngineValve.invok e(StandardEngineValve.java:156)
[java] at org.apache.catalina.core.StandardValveContext.invo keNext(StandardValveContext.java:151)
[java] at org.apache.catalina.core.StandardPipeline.invoke(S tandardPipeline.java:567)
[java] at org.apache.catalina.core.ContainerBase.invoke(Cont ainerBase.java:972)
[java] at org.apache.coyote.tomcat5.CoyoteAdapter.service(Co yoteAdapter.java:206)
[java] at org.apache.coyote.http11.Http11Processor.process(H ttp11Processor.java:833)
[java] at org.apache.coyote.http11.Http11Protocol$Http11Conn ectionHandler.processConnection(Http11Protocol.jav a:732)
[java] at org.apache.tomcat.util.net.TcpWorkerThread.runIt(P oolTcpEndpoint.java:619)
[java] at org.apache.tomcat.util.threads.ThreadPool$ControlR unnable.run(ThreadPool.java:688)
[java] at java.lang.Thread.run(Unknown Source)