Spring Tomcat应用程序中的NoSuchMethodError



我正在尝试实现一个新的安全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的专家,所以任何建议都会很有帮助。我知道这是一个非常具体的问题,所以我发布这篇文章希望能得到一些线索,并向自己澄清这个问题。不过,我会接受任何指向正确方向的答案!

尝试使用库的最后一个版本:

<dependency>
    <groupId>commons-codec</groupId>
    <artifactId>commons-codec</artifactId>
    <version>20041127.091804</version>
</dependency>

最新更新