我遇到了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)
我在不同的服务器上使用相同的代码,相同的推送证书,它正在工作,但不是我的! 我似乎无法找出这个问题的原因。有没有人经历过它?
答案 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无法找到证书库,您可能会更改商店的路径。