java.lang.NoClassDefFoundError:org / apache / tomcat / util / codec / binary / Base64

时间:2014-05-20 19:18:14

标签: java tomcat jar

当我点击一个特定的单选按钮时,它应该获取一个servlet,但它无法找到上面的类。我应该在哪里包含jar文件的类路径?还有什么是必须存在的jar文件 Tomcat的util.jar 卡塔利娜-的ant.jar 公地编解码器1.6.jar opencsv-2.1-1.0.0.jar xerces_2_6_2.jar

我应该将它们包含在META-INF的manifest.mf中吗? 请帮助我,因为我很长时间都对此感到震惊。

2 个答案:

答案 0 :(得分: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"/>

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

答案 1 :(得分:0)

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

你可以通过将你用来编译你的东西的任何JAR放到webapp的WEB-INF / lib目录中来解决这个问题。如果您正在使用Gradle或Maven,我相信如果您声明依赖项是编译依赖项,它们将直接执行此操作。