用于解码的代码:Base64.decodeBase64("String")。
Commons-codec jar版本:1.9
异常:嵌套异常是java.lang.NoSuchMethodError:org.apache.commons.codec.binary.Base64.decodeBase64(LjavalangString;)
环境细节:操作系统:SunOSVersion:5.11Java版本:1.8.0_221(Oracle公司)
同样的WAR工作在以下环境中Environment Details:OS: AIXVersion: 7.1Java Version: 1.8.0_191 (IBM JDK)
如果你得到一个 NoSuchMethodError
这意味着你有一个运行时版本不兼容的问题。 代码库的某些部分依赖于1 一版 Base64
的方法,称为 decodeBase64
孤零零 String
参数,但已经加载的类的版本没有该方法。 但是已经加载的类的版本没有这个方法。
在javadoc中,有一个关于该方法的线索。 它说这个方法被添加到了 Base64
在1.4版本的API中,所以检查部署的JAR文件,看看运行时classpath上是否有旧版本(1.4前)的Apache Commons Codec JAR。 所以检查部署的JAR文件,看看运行时classpath上是否有旧版本(1.4前)的Apache Commons Codec JAR。
1 - 这可能是一个静态依赖,即一个正常的方法调用。 它也可能是一个动态的依赖关系;例如,试图使用反射来查找方法。