我正在使用appengine-maven-plugin来构建我的Java Google App Engine项目.
我在WEB-INF子文件夹中包含.p12证书
当我构建我的应用程序时,证书的文件大小增加了几KB.这使它无效.我也看到过.jks证书也是如此.
我已经验证了预构建证书的有效性,并使用相同的方法来确认构建后证书的无效性.
任何人都可以告诉我为什么文件大小正在改变以及为什么它不是简单地复制到WAR?
谢谢你的帮助.
当我尝试使用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);
Run Code Online (Sandbox Code Playgroud)
谢谢.
我正在阅读更新的官方APNS文档 它清楚地说,
所有开发人员都应将其远程通知提供程序服务器迁移到APNs Provider API中描述的功能更强大且更高效的基于HTTP/2的API.
但新的APNs Provider API似乎没有旧的APNS反馈服务.他们更改了没有反馈服务端点的端点URL.还查看现在升级的错误代码,其中包括以下错误代码,
未注册 - 设备令牌对指定主题处于非活动状态.
那么我们不应该再打电话给APNS反馈服务吗?
我的主要问题是我使用javapns api 2.2版进行iOS推送通知,我无法找到任何更新,这将有助于我应对这一新变化.
当我尝试在java上使用'ApnsService'向IOS发送推送通知时,我收到如下错误:
com.notnoop.exceptions.NetworkIOException: javax.net.ssl.SSLHandshakeException: Received fatal alert: certificate_unknown
at com.notnoop.apns.internal.Utilities.wrapAndThrowAsRuntimeException(Utilities.java:269)
at com.notnoop.apns.internal.ApnsConnectionImpl.sendMessage(ApnsConnectionImpl.java:257)
at com.notnoop.apns.internal.ApnsConnectionImpl.sendMessage(ApnsConnectionImpl.java:230)
at com.notnoop.apns.internal.ApnsServiceImpl.push(ApnsServiceImpl.java:46)
at com.notnoop.apns.internal.AbstractApnsService.push(AbstractApnsService.java:56)
at com.notnoop.apns.internal.ApnsServiceImpl.push(ApnsServiceImpl.java:36)
at com.notnoop.apns.internal.AbstractApnsService.push(AbstractApnsService.java:45)
at net.penril.notification.Initializer.notificationWorker(Initializer.java:189)
at net.penril.notification.Initializer.Initial(Initializer.java:53)
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:722)
Caused by: javax.net.ssl.SSLHandshakeException: Received fatal alert: certificate_unknown
at sun.security.ssl.Alerts.getSSLException(Alerts.java:192)
at sun.security.ssl.Alerts.getSSLException(Alerts.java:154)
at sun.security.ssl.SSLSocketImpl.recvAlert(SSLSocketImpl.java:1977)
at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1093)
at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1328)
at sun.security.ssl.SSLSocketImpl.writeRecord(SSLSocketImpl.java:702)
at sun.security.ssl.AppOutputStream.write(AppOutputStream.java:122)
at java.io.OutputStream.write(OutputStream.java:75)
at com.notnoop.apns.internal.ApnsConnectionImpl.sendMessage(ApnsConnectionImpl.java:240)
... 10 more
Run Code Online (Sandbox Code Playgroud)
请参阅下面的服务器端源代码:
ApnsService service =
APNS.newService()
.withCert("src/net/notification/certificate.p12", "XXXXXX")
.withSandboxDestination()
.build();
String payload = APNS.newPayload().alertBody(record.getSendMsg()).build();
String token = record.getRegId();
service.push(token, payload);
Run Code Online (Sandbox Code Playgroud)
我想问一下,我使用的证书是假设要隐藏到java密钥库格式还是其中的任何解决方案?
我需要将Apple推送通知服务集成到Openfire.
为此我遵循了openfire-apns-plugin.但是当我执行mvn clean install
命令(最后一步)时,我收到错误.所以,因为那openfire-apns.jar
不是创造的.
请帮我弄清楚这个问题.
执行后生成以下日志mvn clean install
,
root@vps [~/openfire_src/openfire-apns-plugin]# mvn clean install
[INFO] Scanning for projects...
[INFO]
[INFO] Using the builder org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder with a thread count of 1
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building APNS Service 1.0.0
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ apns ---
[INFO] Deleting /root/openfire_src/openfire-apns-plugin/target
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ apns ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /root/openfire_src/openfire-apns-plugin/src/main/resources …
Run Code Online (Sandbox Code Playgroud) 我们在 .NET 中实现了一个 API 服务,该服务向 Apple Wallet 发送后台通知以更新其余额,而 Apple Wallet 又会调用以下我们服务的 API:
webServiceURL/version/devices/deviceLibraryIdentifier/registrations/passTypeIdentifier?passesUpdatedSince=tag
webServiceURLversion/passes/passTypeIdentifier/serialNumber
api.push.apple.com:443
服务使用 HTTP/2 协议发送推送通知,并使用Pass Type ID 和 NFC 证书进行身份验证,每次都会成功,钱包会调用上述两个 API,从而更新余额。
然而,大约 30% 的情况下,通行证更新会出现延迟;延迟不断增加,如 1 分钟、2 分钟、10 分钟、1 小时等,然后重置。
我尝试在推送通知请求中添加一个apns-expiration
值为UtcNow + 5 分钟(纪元格式)的标头,但它不起作用。
我在Centos 6.7中安装了java版本:
java -version
java version "1.6.0_38"
OpenJDK Runtime Environment (IcedTea6 1.13.10) (rhel-1.13.10.0.el6_7-x86_64)
OpenJDK 64-Bit Server VM (build 23.25-b01, mixed mode)
Run Code Online (Sandbox Code Playgroud)
我想将Java版本降级为
java -version
java version "1.6.0_17"
OpenJDK Runtime Environment (IcedTea6 1.7.10) (rhel-1.20.b17.el5-x86_64)
OpenJDK 64-Bit Server VM (build 14.0-b16, mixed mode)
Run Code Online (Sandbox Code Playgroud)
怎么做到这一点?