java apns ssl错误_无法使用Javapns / Javaapns SSL握手失败发送推送通知

我的推送通知有问题。我有一个由团队成员创建的p.12证书,并且我拥有要推送到的设备的设备令牌。我正在使用javapns库进行推送(也尝试了具有相同结果的javaapns

lib),但我一直收到此错误:

javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure

at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:174)

at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:136)

at com.sun.net.ssl.internal.ssl.SSLSocketImpl.recvAlert(SSLSocketImpl.java:1720)

at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:954)

at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1138)

at com.sun.net.ssl.internal.ssl.SSLSocketImpl.writeRecord(SSLSocketImpl.java:632)

at com.sun.net.ssl.internal.ssl.AppOutputStream.write(AppOutputStream.java:59)

at java.io.OutputStream.write(OutputStream.java:58)

at javapns.notification.PushNotificationManager.sendNotification(PushNotificationManager.java:402)

at javapns.notification.PushNotificationManager.sendNotification(PushNotificationManager.java:350)

at javapns.notification.PushNotificationManager.sendNotification(PushNotificationManager.java:320)

at javapns.Push.sendPayload(Push.java:177)

at javapns.Push.combined(Push.java:100)

at PushTest.push(PushTest.java:43)

at PushTest.main(PushTest.java:25)

这是我用来测试的代码

try {

List n = Push.combined(text, 20, null, file, "********", false, token);

for (PushedNotification notification : n) {

if (notification.isSuccessful())

System.out.println("Push notification sent successfully to: " + notification.getDevice().getToken());

else {

String invalidToken = notification.getDevice().getToken();

Exception theProblem = notification.getException();

theProblem.printStackTrace();

ResponsePacket theErrorResponse = notification.getResponse();

if (theErrorResponse != null)

System.out.println(theErrorResponse.getMessage());

}

}

}

catch (CommunicationException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

catch (KeystoreException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

我阅读并尝试了其他几篇文章中的建议,包括将证书导入cacerts密钥库,但导入也失败。我正在Windows机器上使用Eclipse开发。

有人熟悉这个问题吗?我是使用ssl的新手,所以也许我做错了什么,还是无法使用在另一台计算机上生成的证书?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值