Notnoop / java-apns推

时间:2011-08-27 07:16:06

标签: java apple-push-notifications

我遇到了notnoop / java-apns的问题。 它拒绝从我的java服务器发送推送通知,我得到以下错误/异常:

com.notnoop.exceptions.NetworkIOException:javax.net.ssl.SSLException:java.lang.RuntimeException:意外错误:: trustAnchors参数必须为非空      在com.notnoop.apns.internal.Utilities.wrapAndThrowAsRuntimeException(Utilities.java:268)      at com.notnoop.apns.internal.ApnsConnectionImpl.sendMessage(ApnsConnectionImpl.java:173)      在com.notnoop.apns.internal.ApnsServiceImpl.push(ApnsServiceImpl.java:46)      在com.notnoop.apns.internal.AbstractApnsService.push(AbstractApnsService.java:52)      在com.notnoop.apns.internal.ApnsServiceImpl.push(ApnsServiceImpl.java:36)      在com.kaniti.server.notification.impl.AppleIphoneNotificationJob.run(AppleIphoneNotificationJob.java:221)      在java.lang.Thread.run(Thread.java:662)  引发者:javax.net.ssl.SSLException:java.lang.RuntimeException:意外错误:: trustAnchors参数必须为非空      at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:190)      在com.sun.net.ssl.internal.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1649)      at com.sun.net.ssl.internal.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1612)      at com.sun.net.ssl.internal.ssl.SSLSocketImpl.handleException(SSLSocketImpl.java:1595)      at com.sun.net.ssl.internal.ssl.SSLSocketImpl.handleException(SSLSocketImpl.java:1521)      at com.sun.net.ssl.internal.ssl.AppOutputStream.write(AppOutputStream.java:64)      在java.io.OutputStream.write(OutputStream.java:58)      at com.notnoop.apns.internal.ApnsConnectionImpl.sendMessage(ApnsConnectionImpl.java:161)

我在不同的服务器上使用相同的代码,相同的推送证书,它正在工作,但不是我的! 我似乎无法找出这个问题的原因。有没有人经历过它?

2 个答案:

答案 0 :(得分:2)

以下步骤可帮助您解决问题。

步骤: developer_identity.cer< =从Apple下载 mykey.p12< =您的私钥

要遵循的命令:

    openssl x509 -in developer_identity.cer -inform DER -out developer_identity.pem -outform PEM

    openssl pkcs12 -nocerts -in mykey.p12 -out mykey.pem

    openssl pkcs12 -export -inkey mykey.pem -in developer_identity.pem -out iphone_dev.p12

我们需要的最终p12是iphone_dev.p12文件和密码。

使用它作为你的p12。这确实是解决方案。 :)

答案 1 :(得分:0)

您可以使用其他问题解决问题:the trustAnchors parameter must be non-empty
您的问题是Java无法找到证书库,您可能会更改商店的路径。