Java ClassNotFoundException与Apache POI

Java ClassNotFoundException与Apache POI,java,apache,servlets,apache-poi,Java,Apache,Servlets,Apache Poi,我使用的是ApachePOIv3.9,下面的语句总是给出ClassDefinitionNotFoundException HWPFDocument document=new HWPFDocument(file); java.lang.ClassNotFoundException: org.apache.poi.hwpf.HWPFDocument at org.apache.catalina.loader.WebappClassLoader.loadClass(Webap

我使用的是ApachePOIv3.9,下面的语句总是给出ClassDefinitionNotFoundException

       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

有时库可能会损坏。。。请删除所有JAR,然后再次添加、清理并运行应用程序。

请确认在最终WAR(我假设您在Tomcat上运行)中,WEB-INF/lib文件夹中是否也包含JAR?构建路径不够,您还需要让它们加入WAR!感谢lppiepiora,我现在正在eclipse中完成所有工作。我相信POI的v3.9版本已经过时了,但即使在更新了新的库之后,我也会遇到同样的错误。我仍然会猜测它们不包括在WAR中,当您转到项目属性->Java构建路径->顺序和导出时,文件是否标记为导出?它们应该是.Acc to findjar.com()。您的路径中没有正确的jar集。谢谢Sankumarsingh,我坚信jar已损坏,但我无法找到poi v3.8或更低版本。我多次下载poi3.9库,并在每次出现相同异常时更新为生成路径。从这里下载3.8及以下版本的3.8