Android 中的推送通知失败,并显示“未设置 GCM 的连接详细信息”
Posted
技术标签:
【中文标题】Android 中的推送通知失败,并显示“未设置 GCM 的连接详细信息”【英文标题】:Push notification in Android fails with "connectivity details to GCM are not set" 【发布时间】:2015-10-28 10:21:43 【问题描述】:我们正在运行 MobileFirst Platform Foundation 7.0,并同时使用 ios 推送和 android 推送消息。服务器重启后与 GCM 通信时出现问题。
MFP 安装在 WebSphere AppServer Network Deployment 版本 8.5.5 环境中。此服务器在公司防火墙后面运行。
我们设置环境条目来指定 MFP 应该用来与 GCM 通信的代理服务器;如此处所述:https://www-304.ibm.com/support/knowledgecenter/SSHS8R_7.0.0/com.ibm.worklight.deploy.doc/admin/t_using_JNDI_lookup_to_override_WL_properties.html
在 WAS 完全重启后,意味着应用服务器、节点代理和部署管理器停止,随后以相反的顺序启动 - GCM 推送工作正常。
但是,如果我们仅重新启动正在运行的 App Server MFP,则服务器日志中会出现以下错误:
[10/28/15 11:04:17:022 CET] 00000123 javascriptInt I com.worklight.integration.js.JavaScriptIntegrationLibraryImplementation info Wed Oct 28 2015 11:04:17 GMT+0100 (CET): Send MyIT Broadcast message for IT Failure with title 'Test Push Message 3' [project babel]
[10/28/15 11:04:17:061 CET] 00000156 GCMMediator E com.ibm.pushworks.server.notification.gcm.GCMMediator sendOrWait FPWSE1051E: Notification through Google Cloud Messaging (GCM) was not sent to application 'MyITHelpdeskApp-android-0.1.2' because connectivity details to GCM are not set.
发送到 Android 设备的推送消息无法传递。似乎 Web 模块的环境条目在 AppServer 重新启动时未正确加载,或者 MFP 在重新加载时未正确拾取命名空间条目。
有没有我们遗漏的设置?或者有没有办法使用相应的 GCM 代理设置强制更新命名空间?
【问题讨论】:
它不能具体选择什么,只是代理设置或任何 JNDI 属性? Idan,我们只知道 GCM 设置 - 还有一些其他环境/JNDI 设置,例如ibm.worklight.topology.platform
可能仍被正确拾取,因为服务器仍在工作。
Lennert,可能值得尝试打开 WAS 的 Naming=all
跟踪(然后将出现在 trace.log
中),看看是否可以找到 GCM JNDI 属性。请参阅此处了解更多信息:www-01.ibm.com/support/docview.wss?uid=swg21143296#show-hide
只是为了更新它的状态:我们启用了Naming=all
跟踪,我们看到 GCM 代理 JNDI 属性设置符合预期。 “未设置 GCM 的连接详细信息”这句话的含义仍然是个谜。
@AndrewFerrier 您在这方面取得了进展吗?
【参考方案1】:
事实证明,这种情况下的答案是部署到服务器的.wlapp
是旧版本,没有适当的 GCM 连接密钥(换句话说,这是一个开发问题,而不是基础设施问题)。解决此问题后,GCM 开始工作。
【讨论】:
以上是关于Android 中的推送通知失败,并显示“未设置 GCM 的连接详细信息”的主要内容,如果未能解决你的问题,请参考以下文章
如何通过门户向 Android 发送 Azure 推送通知?