我正在尝试实现一个新的安全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的专家,所以任何建议都会有所帮助。我知道这是一个非常具体的问题,因此我希望发布一些线索,并向我自己澄清问题。不过,我会接受任何指向正确方向的答案!
答案 0 :(得分:1)
尝试使用该库的最新版本:
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>20041127.091804</version>
</dependency>