gpt4 book ai didi

在 ColdFusion 中找不到 Java 方法

转载 作者:行者123 更新时间:2023-11-29 05:40:53 25 4
gpt4 key购买 nike

我正在使用他们的 Java 库将 GoCardless 实现到我的 ColdFusion 应用程序中,但遇到了以下错误:

java.lang.NoSuchMethodError: org.apache.commons.codec.binary.Base64.encodeBase64String([B)Ljava/lang/String;

如 GoCardless 文档中所述,它们的库依赖于 Apache Commons Codec 库(以及其他库)。当我将 GoCardless JAR 放入我的 ColdFusion lib 文件夹时,我注意到 Apache Commons Codec JAR 已经存在,所以我不确定这个错误意味着什么。

任何帮助将不胜感激。谢谢!

最佳答案

假设您没有调用该方法,它可能正是它所说的意思。 jvm 加载的编解码器版本不包含具有该签名的方法。您可以通过创建 org.apache.commons.codec.binary.Base64 类的实例并使用 cfdump 检查可用方法来验证它。 (它可能也可能是类加载器冲突,但前者更有可能。)

就原因而言,当类路径中存在多个版本的 jar 时,jvm 只能选择其中一个。它可能选择了 ColdFusion 附带的旧版本,该版本可能没有该方法。请参阅:Identifying which jar a class was loaded from.. .

加载较新版本的 jar 的最简单方法是删除 /lib 中的旧 jar,将其替换为较新版本,然后重新启动 CF。请记住,库也由 CF 本身使用,因此如果新版本不向后兼容,您将面临破坏某些东西的风险。另一种选择是使用 CF10 的 dynamic class loading feature .它基本上是 Mark Mandel's JavaLoader.cfc 的翻版,刚刚捆绑到 CF 中。

关于在 ColdFusion 中找不到 Java 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17652902/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com