gpt4 book ai didi

java - 推送通知 - 由 : java. io.IOException 引起:toDerInputStream 拒绝标记类型 45

转载 作者:太空宇宙 更新时间:2023-11-03 12:55:10 27 4
gpt4 key购买 nike

当我的服务器尝试根据设备 token 和 ck.pem(.pem 文件、证书和 key 的组合)将通知推送到特定设备时出现此错误。

Caused by: java.io.IOException: toDerInputStream rejects tag type 45

这是我的 eclipse 控制台中出现的完整错误消息。

initial
starting push notification sending
2014/03/20 14:28:00:252 INFO net.penril.notification.Initializer: ====Start Push Notification Sending====
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
2014/03/20 14:28:04:737 INFO net.penril.notification.Initializer: Total of record data(1)
SMS OID: 465
IOS test
reg id =x769571d187c15cec398c5a02f196249456e8b73f763754fa17060658f87f6f6
com.notnoop.exceptions.InvalidSSLConfig: java.io.IOException: toDerInputStream rejects tag type 45
2014/03/20 14:28:05:374 INFO net.penril.notification.Initializer: Failed send notification to APN
2014/03/20 14:28:05:374 INFO net.penril.notification.Initializer: ====Complete Push Notification Sending====
2014/03/20 14:28:05:374 INFO net.penril.notification.Initializer: =====End=====

starting..
at com.notnoop.apns.internal.Utilities.newSSLContext(Utilities.java:101)
at com.notnoop.apns.ApnsServiceBuilder.withCert(ApnsServiceBuilder.java:170)
at com.notnoop.apns.ApnsServiceBuilder.withCert(ApnsServiceBuilder.java:133)
at net.penril.notification.Initializer.notificationWorker(Initializer.java:156)
at net.penril.notification.Initializer.Initial(Initializer.java:46)
at net.penril.notification.PushNotificationCron$Job.run(PushNotificationCron.java:12)
at EDU.oswego.cs.dl.util.concurrent.ClockDaemon$RunLoop.run(Unknown Source)
at java.lang.Thread.run(Thread.java:724)
Caused by: java.io.IOException: toDerInputStream rejects tag type 45
at sun.security.util.DerValue.toDerInputStream(DerValue.java:847)
at sun.security.pkcs12.PKCS12KeyStore.engineLoad(PKCS12KeyStore.java:1221)
at java.security.KeyStore.load(KeyStore.java:1214)
at com.notnoop.apns.internal.Utilities.newSSLContext(Utilities.java:85)
... 7 more

我怀疑这个错误是由这段代码引起的

System.out.println("reg id =" + record.getRegId());
ApnsService service = APNS.newService().withCert("/Applications/MAMP/htdocs/xxxxx-mobile/ck.pem", "xxxxxx").withSandboxDestination().build();
String payload = APNS.newPayload().alertBody("This for testing").build();
String token = record.getRegId();
service.push(token, payload);

你知道这个 toDerInputStream 拒绝标签类型 45 吗?

我已经在这里研究了这个问题:

  1. https://community.oracle.com/thread/1534340?start=0&tstart=0
  2. Java APNS (Apple Push Notification Service) error

为什么?

最佳答案

如前所述here java-apns 需要 .p12 私钥,而不是 .pem 文件。

在 mac 上创建 .p12 文件的说明在第一个链接中,但如果您在 linux 上使用 openssl 工具,则可以使用以下方法创建它:

openssl pkcs12 -export -inkey mykey.key -in mykey.pem -out mykey.p12

关于java - 推送通知 - 由 : java. io.IOException 引起:toDerInputStream 拒绝标记类型 45,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27562289/

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