2013-07-23 139 views
0

我使用的Apache POI V3.9和下面的语句总是给classdefinitionnotfound例外ClassNotFoundException的使用Apache POI

 HWPFDocument document=new HWPFDocument(file); 


java.lang.ClassNotFoundException: org.apache.poi.hwpf.HWPFDocument 
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1680) 
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526) 
    at com.anz.actions.ConverterAction.execute(ConverterAction.java:39) 
    at org.apache.struts.chain.commands.servlet.ExecuteAction.execute(ExecuteAction.java:58) 
    at org.apache.struts.chain.commands.AbstractExecuteAction.execute(AbstractExecuteAction.java:67) 
    at org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51) 
    at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:191) 
    at org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:305) 
    at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:191) 
    at org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283) 
    at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913) 
    at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:643) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:723) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293) 
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861) 
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606) 
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) 
    at java.lang.Thread.run(Unknown Source) 

即使我已经包括在我的构建路径的jar文件:

poi 
poi-scratchpad 
poi-ooxml 
poi-ooxml-schemas 
poi-examples 
ooxml-schemas 
+0

请你确认你还包括罐子在最后的战争(我假设你运行在汤姆cat),在WEB-INF/lib文件夹中? – lpiepiora

+0

构建路径是不够的,你也需要让它们进入WAR! – Gagravarr

+0

感谢lppiepiora现在我正在做所有的日食。我相信POI的v3.9会中断,但即使在新的库更新后,我也会得到同样的错误。 – user1065490

回答

1

有时图书馆可能会损坏...请删除所有罐子,并再次添加,清洁和运行应用程序..

+0

谢谢你Sankumarsingh,我坚信这个jar损坏了,但我无法找到poi v3.8或更低版本。我多次下载了poi3.9库,并在每次给出相同的异常时更新以构建路径。 – user1065490

+0

从这里下载3.8及以下http://archive.apache.org/dist/poi/release/bin/用于3.8其http://archive.apache.org/dist/poi/release/bin/poi-bin- 3.8-20120326.zip – Sankumarsingh