Reputation: 41
while uploading .xlsx java.lang.NoClassDefFoundError: Could not initialize class org.apache.poi.poifs.filesystem.FileMagic and while uploading .xls file getting error java.io.IOException: Unable to read entire header; 0 bytes read; expected 512 bytes
In am creating a web application and in that I am uploading an excel and fetching its data to add in mysql database by using row and cell index numbers it is working fine, but after uploading web application to server it showing error while i am uploading excel to fetch data and adding those data to mysql database. my code is on link
below is the error: while uploading .xlsx file
Type Exception Report
Message Servlet execution threw an exception
Description The server encountered an unexpected condition that prevented it from fulfilling the request.
Exception
javax.servlet.ServletException: Servlet execution threw an exception org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) Root Cause
java.lang.NoClassDefFoundError: Could not initialize class org.apache.poi.poifs.filesystem.FileMagic org.apache.poi.openxml4j.opc.internal.ZipHelper.openZipStream(ZipHelper.java:208) org.apache.poi.openxml4j.opc.ZipPackage.(ZipPackage.java:98) org.apache.poi.openxml4j.opc.OPCPackage.open(OPCPackage.java:324) org.apache.poi.util.PackageHelper.open(PackageHelper.java:37) org.apache.poi.xssf.usermodel.XSSFWorkbook.(XSSFWorkbook.java:295) com.filetwo.doPost(filetwo.java:131) javax.servlet.http.HttpServlet.service(HttpServlet.java:661) javax.servlet.http.HttpServlet.service(HttpServlet.java:742) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) Note The full stack trace of the root cause is available in the server logs.
but when i am uploading .xls file i am getting error I am getting following error
HTTP Status 500 ? Internal Server Error Type Exception Report
Message Unable to read entire header; 0 bytes read; expected 512 bytes
Description The server encountered an unexpected condition that prevented it from fulfilling the request.
Exception
java.io.IOException: Unable to read entire header; 0 bytes read; expected 512 bytes org.apache.poi.poifs.storage.HeaderBlock.alertShortRead(HeaderBlock.java:226) org.apache.poi.poifs.storage.HeaderBlock.readFirst512(HeaderBlock.java:207) org.apache.poi.poifs.storage.HeaderBlock.(HeaderBlock.java:104) org.apache.poi.poifs.filesystem.POIFSFileSystem.(POIFSFileSystem.java:138) org.apache.poi.hssf.usermodel.HSSFWorkbook.(HSSFWorkbook.java:322) org.apache.poi.hssf.usermodel.HSSFWorkbook.(HSSFWorkbook.java:303) com.filetwo.doPost(filetwo.java:542) javax.servlet.http.HttpServlet.service(HttpServlet.java:661) javax.servlet.http.HttpServlet.service(HttpServlet.java:742) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) Note The full stack trace of the root cause is available in the server logs.
Upvotes: 3
Views: 5879
Reputation: 49
It seems that your local/dev environment isn't in sync with you server environment.
The error says that the class your program depends on wasn't found on the classpath. As this worked on your local/dev, ensure that the server environment has the same set of jar that your local/dev environment has.
Upvotes: 2