gpt4 book ai didi

java - GCM 服务器推送失败并出现 SSLException (Java)

转载 作者:行者123 更新时间:2023-11-30 11:33:44 31 4
gpt4 key购买 nike

当我向 Google 云消息传递中心发送新的推送通知时,有时会出现问题。我正在使用可用的 Google 库 here .我正在使用 Tomcat 7.0.35 和 bouncycaSTLe 1.46。该错误仅有时发生,我无法预测何时发生。这是堆栈跟踪:

09:05:24 [pool-18-thread-1] Sender - IOException posting to GCM
javax.net.ssl.SSLException: java.lang.RuntimeException: Could not generate secret
at sun.security.ssl.Alerts.getSSLException(Alerts.java:208)
at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1868)
at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1826)
at sun.security.ssl.SSLSocketImpl.handleException(SSLSocketImpl.java:1809)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1328)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1305)
at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:515)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:185)
at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:1090)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.java:250)
at com.google.android.gcm.server.Sender.post(Sender.java:582)
at com.google.android.gcm.server.Sender.sendNoRetry(Sender.java:420)
at com.test.push.service.impl.PushServiceImpl$2.call(PushServiceImpl.java:606)
at com.test.push.service.impl.PushServiceImpl$2.call(PushServiceImpl.java:599)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
Caused by: java.lang.RuntimeException: Could not generate secret
at sun.security.ssl.ECDHCrypt.getAgreedSecret(ECDHCrypt.java:99)
at sun.security.ssl.ClientHandshaker.serverHelloDone(ClientHandshaker.java:930)
at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:282)
at sun.security.ssl.Handshaker.processLoop(Handshaker.java:868)
at sun.security.ssl.Handshaker.process_record(Handshaker.java:804)
at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:998)
at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1294)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1321)
... 14 more
Caused by: java.security.InvalidKeyException: ECDH key agreement requires ECPublicKey for doPhase
at org.bouncycastle.jce.provider.asymmetric.ec.KeyAgreement.engineDoPhase(Unknown Source)
at javax.crypto.KeyAgreement.doPhase(KeyAgreement.java:551)
at sun.security.ssl.ECDHCrypt.getAgreedSecret(ECDHCrypt.java:96)
... 21 more

有人遇到过类似的事情吗?

最佳答案

我的应用程序运行在 2 个 tomcats 7.0.x 和 Java 1.7 上。该问题仅发生在其中一个上,并通过更改为 Java 1.6 得到解决

关于java - GCM 服务器推送失败并出现 SSLException (Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16010252/

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