在构建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的所有库。
见:
你是否正在为你的项目使用Maven。确保apache公共编解码器jar在类路径中可用,或者添加了Web应用程序依赖项的一部分。