在构建Web应用程序时,我使用了org.apache.commons.codec.digest中的DigestUtils类。
当我使用它测试类时,我没有问题,所有内容都按预期编译和运行。
但是当我在Tomcat中使用它时(就像在servlet中一样),我得到了以下错误:
java.lang.NoClassDefFoundError: org/apache/commons/codec/digest/DigestUtils
我已经对这个问题做过一些研究,但找不到能帮到我的解决方案。
问题有时会附加在我的其他发展中,所以我想知道如何为我的所有未来作品解决这个问题。
我知道默认情况下Java 9并不包含所有模块,而且我已经阅读了一些问题,解决方案主要在classpath中?
我目前正在使用IDE IntelliJ IDEA,你能帮我解决这个问题吗?
使用DigestUtils的调用部分是:
private String hash(String value) {
return DigestUtils.md5Hex(value);
}
我知道md5已被弃用,但这是客户要求。
应用程序在Tomcat 9.0.4下运行
修改:
IntelliJ Maven commons-codec dependency
答案:
IntelliJ不包括maven依赖项中的所有库到WEB-INF / lib。
参见:
答案 0 :(得分:0)
您是否正在将Maven用于您的项目。确保apache通用编解码器jar在类路径中可用,或者添加了部分Web应用程序依赖项。