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)

在SNSMobilePush.java的顶部有一个叫做attributesMap的Map。 它最初的值为Platform.APNS和Platform.APNS_SANDBOX关键字设置为null。 在代码期间,这些值永远不会改变,并且负责引起空指针异常。 本教程不表示要更改这些值。

我没有做任何超出或超出教程的指示。

我知道我的凭据是正确的,因为我通过亚马逊管理控制台使用这些相同凭据向我的iOS应用发送了一条消息。

谁能指出

  • 如果教程不完整
  • 与Platform.APNS_SANDBOX相关的值应该是为了实现这个工作
  • 任何暗示帮我解决这个问题
  • 更新我添加了一个空检查getValidNotificationAttributes(),现在我可以使用本教程使用sns和apns发送推送通知。


    我能够通过向AmazonSNSClientWrapper类中的getValidNotificationAttributes()添加null检入来获得教程的工作。 我确信这是使用Platform APNS_SANDBOX和APNS(也可能是ADM和GCM)时暴露的代码中的一个缺陷。

    public static Map<String, MessageAttributeValue> getValidNotificationAttributes(
    Map<String, MessageAttributeValue> notificationAttributes) {
    if (notificationAttributes != null) {
    
    Map<String, MessageAttributeValue> validAttributes = new HashMap<String, MessageAttributeValue>();
    for (Map.Entry<String, MessageAttributeValue> entry : notificationAttributes.entrySet()) {
    if (!StringUtils.isBlank(entry.getValue().getStringValue())) {
    validAttributes.put(entry.getKey(), entry.getValue());
    }
    }
    return validAttributes;
    } else {
    return new HashMap<String, MessageAttributeValue>();
    }
    }
    

    我希望这可以帮助任何正在通过此在线教程工作的人。

    链接地址: http://www.djcxy.com/p/21911.html

    上一篇: Bug in the Amazon SNS Apple Push Notification Tutorial (Null Pointer Exception)

    下一篇: Rspec/Rails: uninitialized constant ActiveSupport::Autoload (NameError)