一段时间以来,我一直在 Eclipse 中运行相同的 Web 应用程序,并且大量使用 org.apache.commons.io.output.ByteArrayOutputStream。
出乎意料的是,尽管 commons-io-2.4.jar 包含在构建路径中并标记为已导出,但该项目现在抛出 ClassNotFoundException。
这个类已经使用了一段时间,因此这个难题
我能做些什么来确保找到这个类更好?
编辑:我有两台服务器配置了 Tomcat 7.0.40 和 Tomcat 6.0.33
问题只显示在 Tomcat 7 上。
注意:已尝试以下解决方法:
- 重新启动 Eclipse。
- 清理项目
- 删除并重新添加 commons-io-2.4.jar
堆栈跟踪:
严重:子容器在启动期间失败 java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: 无法启动组件 [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/WebApp]] 在 java.util.concurrent.FutureTask$Sync.innerGet(未知来源) 在 java.util.concurrent.FutureTask.get(未知来源) 在 org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1123) 在 org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:800) 在 org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 在 org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559) 在 org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549) 在 java.util.concurrent.FutureTask$Sync.innerRun(未知来源) 在 java.util.concurrent.FutureTask.run(未知来源) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(未知来源) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(未知来源) 在 java.lang.Thread.run(未知来源) 原因:org.apache.catalina.LifecycleException:无法启动组件 [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/WebApp]] 在 org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154) ... 7 更多 引起:java.lang.NoClassDefFoundError: org/apache/commons/io/output/ByteArrayOutputStream 在 java.lang.Class.getDeclaredFields0(本机方法) 在 java.lang.Class.privateGetDeclaredFields(未知来源) 在 java.lang.Class.getDeclaredFields(未知来源) 在 org.apache.catalina.util.Introspection.getDeclaredFields(Introspection.java:106) 在 org.apache.catalina.startup.WebAnnotationSet.loadFieldsAnnotation(WebAnnotationSet.java:261) 在 org.apache.catalina.startup.WebAnnotationSet.loadApplicationServletAnnotations(WebAnnotationSet.java:140) 在 org.apache.catalina.startup.WebAnnotationSet.loadApplicationAnnotations(WebAnnotationSet.java:67) 在 org.apache.catalina.startup.ContextConfig.applicationAnnotationsConfig(ContextConfig.java:405) 在 org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:881) 在 org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:369) 在 org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119) 在 org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90) 在 org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5269) 在 org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) ... 7 更多 引起:java.lang.ClassNotFoundException:org.apache.commons.io.output.ByteArrayOutputStream 在 org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714) 在 org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559) ... 21 更多