gpt4 book ai didi

java - 为什么 Java Stripe API 对于 receiveChangeCipherSpec() 有异常 NoSuchMethodError?

转载 作者:搜寻专家 更新时间:2023-11-01 03:31:11 24 4
gpt4 key购买 nike

我在带有 Payara 5 和 OpenJDK 的 void linux 上使用 Stripe Java 库版本 5.41.0 [void@void ~]$ java -version
openjdk 版本“1.8.0_202”
OpenJDK 运行时环境(build 1.8.0_202-b00)
OpenJDK 64 位服务器 VM(构建 25.202-b00,混合模式)

我得到了一个 receiveChangeCipherSpec 的异常,如下所示:

java.lang.NoSuchMethodError: sun.security.ssl.Handshaker.receiveChangeCipherSpec()V
at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1150)
at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1367)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1395)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1379)
at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:559)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:185)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1564)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1492)
at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:480)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:347)
at com.stripe.net.LiveStripeResponseGetter.makeURLConnectionRequest(LiveStripeResponseGetter.java:429)
at com.stripe.net.LiveStripeResponseGetter.getStripeResponse(LiveStripeResponseGetter.java:582)
at com.stripe.net.LiveStripeResponseGetter.rawRequest(LiveStripeResponseGetter.java:500)
at com.stripe.net.LiveStripeResponseGetter.staticRequest(LiveStripeResponseGetter.java:526)
at com.stripe.net.LiveStripeResponseGetter.request(LiveStripeResponseGetter.java:74)
at com.stripe.net.APIResource.request(APIResource.java:186)

我以为可能是缺少unlimited security policy,但是按照步骤安装,还是出​​现上述异常。

现在有问题的代码是这一行,尽管我正在执行的 API 调用都不起作用:Customer.retrieve(stripeCustomerId)

升级 Stripe 库会解决这个问题,还是我缺少 Payara 或其他东西的 jar?

最佳答案

这个问题的答案与此处相同 ( sun.security.ssl.SSLSessionImpl not found )。总结一下这个问题是异常 NoSuchMethod 确实是错误的,它应该更像是 duplicate classes found,因为,从那个问题中引用 Antoine:

Payara/Glassfish 将原生 sun.* 类嵌入到 [glassfish5_home]/glassfish/modules/endorsed/grizzly-npn-bootstrap.jar 中,因此它与包含在 [JDK_HOME]/jre/lib/中的其他类冲突jsse.jar

我使用了Antoine的解决方案,就是打开grizzly-npn-bootstrap.jar,删除sun文件夹,这样就不会再冲突了,加载正确的来自 jsse.jar 的类。

在linux上可以用Ark打开jar直接删除,在Windows上好像可以用7zip做同样的事情。请先进行备份,以备日后需要返回到原始 jar。

关于java - 为什么 Java Stripe API 对于 receiveChangeCipherSpec() 有异常 NoSuchMethodError?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54190986/

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