标签: javaapns

Amazon SNS Apple推送通知教程中的错误(空指针异常)

我的目标最终目标是通过SNS向iOS应用发送推送通知.我正在逐步完成本教程:http://docs.aws.amazon.com/sns/latest/dg/mobile-push-apns.html.

我已在我的AWS凭据中添加,并添加了相应的apns凭据,用于我的应用程序的开发密钥,证书,私钥和当前推送令牌.当我运行教程时,我得到:

Exception in thread "main" java.lang.NullPointerException
at com.amazonaws.sns.samples.tools.AmazonSNSClientWrapper.getValidNotificationAttributes(AmazonSNSClientWrapper.java:162)
at com.amazonaws.sns.samples.tools.AmazonSNSClientWrapper.publish(AmazonSNSClientWrapper.java:80)
at com.amazonaws.sns.samples.tools.AmazonSNSClientWrapper.demoNotification(AmazonSNSClientWrapper.java:131)
at com.amazonaws.sns.samples.mobilepush.SNSMobilePush.demoAppleSandboxAppNotification(SNSMobilePush.java:438)
at com.amazonaws.sns.samples.mobilepush.SNSMobilePush.main(SNSMobilePush.java:68)
Run Code Online (Sandbox Code Playgroud)

在SNSMobilePush.java的顶部有一个名为attributesMap的Map.对于密钥Platform.APNS和Platform.APNS_SANDBOX,它最初的值设置为null.在代码期间,这些值永远不会改变,并且负责导致空指针异常.本教程未指示更改这些值.

我没有做任何超出教程说明的内容.

我知道我的凭据是正确的,因为我通过Amazon Management Console使用这些相同的凭据向我的iOS应用程序发送消息.

任何人都可以表示

  • 如果教程不完整
  • 与Platform.APNS_SANDBOX相关的值应该是为了使其工作
  • 任何提示,以帮助我解决这个问题

更新我在null检查中添加了getValidNotificationAttributes(),现在我可以使用本教程使用sns和apns发送推送通知.

push-notification amazon-web-services apple-push-notifications amazon-sns javaapns

7
推荐指数
1
解决办法
1270
查看次数

Java TLS 套接字:未找到受信任的证书

让我快速解释一下我要做什么。我正在尝试用 Java 构建我自己的 Apple 推送通知服务(用于测试目的)。这项服务的工作归功于 TLS 套接字。

我有一个 java 客户端来创建一个 TLS 套接字来向 APNs 发送推送通知。我更改了主机 url 以将套接字重定向到 localhost:2195。现在我正在尝试编写一个 java 套接字服务器来获取通知请求。

但是,我在握手过程中遇到异常并且无法找到解决方法。

注意:我在双方使用相同的证书,它是一个标准的 .p12 文件,用于向 APNs 发送推送通知。

这是客户端(简化):

KeyStore ks = KeyStore.getInstance("PKCS12");
ks.load(new FileInputStream(certificatePath), password.toCharArray());

KeyManagerFactory kmf = KeyManagerFactory.getInstance("sunx509");
kmf.init(ks, password.toCharArray());

TrustManagerFactory tmf = TrustManagerFactory.getInstance("sunx509"); 
tmf.init((KeyStore)null);

SSLContext sc = SSLContext.getInstance("TLS"); 
sc.init(kmf.getKeyManagers(), tmf.getTrustManagers(), null); 

SSLSocketFactory ssf = sc.getSocketFactory(); 
SSLSocket socket = (SSLSocket) ssf.createSocket(InetAddress.getLocalHost(), 2195);
socket.startHandshake();
Run Code Online (Sandbox Code Playgroud)

这是服务器:

KeyStore ks = KeyStore.getInstance("PKCS12");
ks.load(new FileInputStream(certificatePath), password.toCharArray());

KeyManagerFactory kmf = KeyManagerFactory.getInstance("sunx509");
kmf.init(ks, password.toCharArray());

SSLContext context = SSLContext.getInstance("TLS"); …
Run Code Online (Sandbox Code Playgroud)

java sockets ssl apple-push-notifications javaapns

6
推荐指数
1
解决办法
3万
查看次数

什么是Java APNS证书的正确格式?

我正在使用Java APNS(com.notnoop.apns,v0.2.3)将推送通知发送到我的iOS应用程序.我正在使用以下行创建APNS服务:

private ApnsService createApnsService() throws IOException {
        ApnsServiceBuilder serviceBuilder = APNS.newService().withCert(certResource.getInputStream(), certPassword);
        serviceBuilder.withSandboxDestination();
        return serviceBuilder.build();
}
Run Code Online (Sandbox Code Playgroud)

并收到以下异常:

org.springframework.web.util.NestedServletException: Request processing failed; nested exception is com.notnoop.exceptions.NetworkIOException: javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure\n\tat org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:948)\n\tat org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:838)\n\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:647)\n\tat org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:812)\n\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:728)\n\tat org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)...    <<...the stacktrace is much longer, but I've cut it of here, since nobody would read it anyway...>>
Run Code Online (Sandbox Code Playgroud)

我猜我的P12证书不正确.(我也已经尝试过PEM证书.)目前我已经以这种方式创建了P12证书,然后应用了密码:

Keychain.app的屏幕截图


创建与Java APNS兼容的证书的正确方法是什么?

java macos apple-push-notifications ios javaapns

4
推荐指数
1
解决办法
7512
查看次数