在使用POI读取word2003时出现了数组下标越界的异常
org.apache.jasper.JasperException: An exception occurred processing JSP page /upload.jsp at line 60
57: String text2003 ="";
58: try {
59: fis = new FileInputStream(file);
60: WordExtractor wordExtractor = new WordExtractor(fis);
61: text2003 = wordExtractor.getText(); // read all text, no paragraph;
62: }
63: catch (IOException e) {
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:521)
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:717)
root cause
java.lang.ArrayIndexOutOfBoundsException
java.lang.System.arraycopy(Native Method)
org.apache.poi.hwpf.model.StyleDescription.<init>(StyleDescription.java:122)
org.apache.poi.hwpf.model.StyleSheet.<init>(StyleSheet.java:105)
org.apache.poi.hwpf.HWPFDocument.<init>(HWPFDocument.java:261)
org.apache.poi.hwpf.HWPFDocument.<init>(HWPFDocument.java:157)
org.apache.poi.hwpf.extractor.WordExtractor.<init>(WordExtractor.java:60)
org.apache.poi.hwpf.extractor.WordExtractor.<init>(WordExtractor.java:52)
org.apache.jsp.upload_jsp._jspService(upload_jsp.java:132)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
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:717)
以上是错误提示。
代码如下:
FileInputStream fis = null;
File file = new File("D:\\test.doc");
String text2003 ="";
try {
fis = new FileInputStream(file);
WordExtractor wordExtractor = new WordExtractor(fis);
text2003 = wordExtractor.getText();
}
catch (IOException e) {
e.printStackTrace();
}
finally{
if(fis!=null)
fis.close();
request.setAttribute("text", text2003);
request.getRequestDispatcher("/1.jsp").forward(request, response);
}