我正在尝试实现一个新的安全 bean,它依赖于一些 Base64 编码。在eclipse中,这个类编译得很好,事实上,它在部署到tomcat时构建,在本地运行;但是,当代码实际到达它调用的行时
Base64.encodeBase64String(rawBytes)
我明白了
SEVERE: Servlet.service() for servlet analytics threw exception
java.lang.NoSuchMethodError: org.apache.commons.codec.binary.Base64.encodeBase64String([B)Ljava/lang/String;
我已经注意导入我想要的类型(org.apache.commons.codec.binary.Base64)并尝试更改调用以使用方法的绝对包名称。
当我检查项目的 pom.xml 时,我看到存在以下内容,并且它是正确的工件,根据 apache 站点:
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
</dependency>
查看 Eclipse 中的依赖层次结构视图,commons-codec jar 包含在 1.4 版的编译时(其中包含有问题的类)。
这里有一个类似的问题建议清除 tomcat 工作目录,所以我这样做无济于事。我不是 maven 或 tomcat 的专家,所以任何建议都会有所帮助。我知道这是一个非常具体的问题,所以我发布这个是希望得到一些线索,并向自己澄清这个问题。不过,我会接受任何指向正确方向的答案!