2014-05-20 56 views
1

当我点击一个特定的单选按钮,它应该取一个servlet,但它是不是能找到上面的类。我应该在哪里包含jar文件的类路径?还什么是必须存在的jar文件 的tomcat-util.jar 卡塔利娜 - ant.jar文件 公地编解码器1.6.jar opencsv-2.1-1.0.0.jar xerces_2_6_2.jarjava.lang.NoClassDefFoundError:组织/阿帕奇/ tomcat的/ UTIL /编解码器/二进制/ Base64编码

应该我将它们包含在META-INF的manifest.mf中? 请帮助我,因为我现在已经很久了。

+1

不幸的是,NoClassDefFoundError是一个“垃圾”异常,可能会出现十几种不同的原因。大多数是围绕着让你的jar文件被废弃(把错误的版本组合放在一起),但还有其他的原因。 –

+0

如果你使用tomcat,你应该把tomcat的lib文件夹中的罚款。 – Jens

回答

1

谢谢所有的建议。我只知道项目中的.classpath没有jar文件的位置。

<classpathentry kind="lib" path="WebContent/WEB-INF/lib/catalina-ant.jar"/> 
<classpathentry kind="lib" path="WebContent/WEB-INF/lib/tomcat-util.jar"/> 
<classpathentry kind="lib" path="WebContent/WEB-INF/lib/commons-codec-1.6.jar"/> 
<classpathentry kind="lib" path="WebContent/WEB-INF/lib/opencsv-2.1-1.0.0.jar"/> 
<classpathentry kind="lib" path="WebContent/WEB-INF/lib/xerces-2_6_2.jar"/> 

我添加了上述内容,它解决了我的问题。非常感谢你:)

0

java.lang.NoClassDefFoundError实际上是一个“垃圾异常”,当您的代码用一个版本的类进行编译时,通常会引发“垃圾异常”,并且在运行时类加载器会找到不同的不兼容版本。 “通常”是那里的术语。静态初始化器的失败也是这个问题的一个常见原因。

你或许可以解决这个问题通过让你使用的任何JAR编译你的东西到WEB-INF/lib中你的webapp的目录。如果您使用Gradle或Maven,我相信如果您将依赖关系声明为编译依赖关系,他们会直接执行此操作。

相关问题