Weblogic commons-codec Base64 nosuchMethodError on SUNOS

Weblogic commons-codec Base64 nosuchMethodError on SUNOS

用于解码的代码: Base64.decodeBase64("String");

Commons-codec jar 版本:1.9

异常: 嵌套异常是 java.lang.NoSuchMethodError: org.apache.commons.codec.binary.Base64.decodeBase64(Ljava/lang/String;)

环境详细信息: OS:太阳OS 版本:5.11 Java版本:1.8.0_221(甲骨文公司)

相同 WAR 在以下环境中工作 环境详情: OS:AIX 版本:7.1 Java 版本:1.8.0_191 (IBM JDK)

如果您得到 NoSuchMethodError,这意味着您遇到了运行时版本不兼容的问题。代码库的某些部分依赖于 1 Base64 的一个版本,它有一个名为 decodeBase64 的方法,该方法接受一个 String 参数。但是已经加载的class版本没有那个方法。

javadoc 中有该方法的线索。它说该方法是在 API 的 1.4 版本中添加到 Base64 中的。因此,请检查部署的 JAR 文件,看看运行时 classpath.

上是否有旧版(1.4 之前)的 Apache Commons Codec JAR

1 - 它可能是静态依赖;即正常的方法调用。它也可能是动态依赖;例如尝试使用反射查找方法。