app-engine iOS 推送通知异常:“指定的队列未知”

Posted

技术标签:

【中文标题】app-engine iOS 推送通知异常:“指定的队列未知”【英文标题】:app-engine iOS push notification exception: "The specified queue is unknown" 【发布时间】:2014-11-08 18:06:22 【问题描述】:

我正在使用 Google 示例项目在我的应用引擎后端设置推送通知。以下方法抛出异常

private static void enqueuePushAlertToDevices(String alertMessage, String devicesAsJson) 
    Queue notificationQueue = QueueFactory.getQueue("notification-delivery");
    notificationQueue.add(TaskOptions.Builder.withMethod(TaskOptions.Method.PULL)
        .param("alert", alertMessage)
        .param("devices", devicesAsJson));

例外是

com.google.api.server.spi.SystemService invokeServiceMethod: The specified queue is unknown : notification-delivery
java.lang.IllegalStateException: The specified queue is unknown : notification-delivery
    at com.google.appengine.api.taskqueue.QueueApiHelper.translateError(QueueApiHelper.java:104)
    at com.google.appengine.api.taskqueue.QueueImpl$2.wrap(QueueImpl.java:552)
    at com.google.appengine.api.taskqueue.QueueImpl$2.wrap(QueueImpl.java:521)
    at com.google.appengine.api.utils.FutureWrapper.wrapAndCache(FutureWrapper.java:55)
    at com.google.appengine.api.utils.FutureWrapper.get(FutureWrapper.java:92)
    at com.google.appengine.api.utils.FutureWrapper.get(FutureWrapper.java:88)
    at com.google.appengine.api.taskqueue.QueueApiHelper.getInternal(QueueApiHelper.java:72)
    at com.google.appengine.api.taskqueue.QueueImpl.add(QueueImpl.java:413)
....

鉴于该项目已经存在,我想许多开发人员一直在使用它。那么我应该在哪里定义队列"notification-delivery"?我理解这个问题:我正在使用一个尚未定义的队列。但我不清楚我应该在哪里定义它。我还没有在示例代码中找到答案。谢谢。

【问题讨论】:

【参考方案1】:

你看起来不够努力:)。其实并不明显。只需将示例中的queue.xml 复制到您的项目中即可。示例中的路径是

/Downloads/solutions-ios-push-notification-sample-backend-java-master/war/WEB-INF

【讨论】:

以上是关于app-engine iOS 推送通知异常:“指定的队列未知”的主要内容,如果未能解决你的问题,请参考以下文章

iOS极光推送设置别名

iOS 推送通知 - 如何在没有声音的情况下指定警报和徽章?

从 app-Engine 上的 java 类向 Android 客户端发送 PUSH 通知

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

iOS远程推送点击消息跳转到指定页面

如何构造 FCM 推送通知以在 Flutter(Android 和 iOS)的默认系统 Web 浏览器应用中打开指定的 URL