当我尝试使用 java APNS 将推送通知发送到 iOS 时,我收到以下错误消息:
com.notnoop.exceptions.InvalidSSLConfig: java.io.IOException: DerInputStream.getLength(): lengthTag=109,太大。
我已经尝试将证书转换为个人信息交换 (.p12),也出现了同样的错误。任何人都知道问题以及如何解决它?
这是我的java代码:
ApnsService service =
APNS.newService()
.withCert("src/net/notification/ck.jks", "******")
.withSandboxDestination()
.build();
String payload = APNS.newPayload().alertBody(record.getSendMsg()).build();
String token = record.getToken();
service.push(token, payload);
谢谢。
原文由 user3479640 发布,翻译遵循 CC BY-SA 4.0 许可协议
我遇到了同样的问题,但只有当您使用 maven 时,我的解决方案才会对您有帮助。
Maven 资源过滤(让您在资源文件中包含变量)会弄乱您的二进制文件——证书对修改特别敏感。
通常,不应过滤二进制内容。但我不能简单地禁用资源过滤,因为我有一些包含变量的 .properties 文件。所以解决方案是 从过滤中排除 .p12 文件。
有关 Maven 资源过滤的更多信息: http ://maven.apache.org/plugins/maven-resources-plugin/examples/filter.html