IBM Worklight 6.0.0.1 - 推送通知轮询在生产环境中不起作用

2023-12-04

我的问题是这样的:

  • When in 开发环境,一切正常 - 轮询器工作正常,数据库状态发生变化等。

  • When in 生产环境,日志中没有出现任何内容,数据库中也没有任何变化(我正在从数据库表中读取通知)。


推送通知事件来源:

WL.Server.createEventSource({
    name : 'PushEventSource',
    poll : { 
        interval : 360, 
        onPoll : 'sendNotifications' 
    },
    securityTest : 'mobileSecTest' 
});


mobileSecTest安全测试:

<mobileSecurityTest name="mobileSecTest"> 
    <testUser realm="LdapAdapterRealm"/>
    <testDeviceId provisioningType="none"/>
</mobileSecurityTest>


sendNotifications() 实现:

var notificationServicesResourceName = "PushAdapter";
function sendNotifications(){

WL.Logger.info('Starting to send notifications');
    var lockInvocationData = {
            adapter : "SQLConnector",
            procedure : "isLocked",
            parameters : [ notificationServicesResourceName ]
    };
    var isLockedResult = WL.Server.invokeProcedure(lockInvocationData);
    if (!isLockedResult.locked) {
        lockInvocationData = {
                adapter : "SQLConnector",
                procedure : "acquireLock",
                parameters : [ notificationServicesResourceName ]
        };
        WL.Server.invokeProcedure(lockInvocationData);

//Get the list of all notifications, from external database
        var dbResponse = getAllUnsentNotifications();

        var data = dbResponse.data ;

        /////////////////THE REST OF THE LONG LONG CODE ////////////
        //Reealse lock
        lockInvocationData = {
                adapter : "SQLConnector",
                procedure : "releaseLock",
                parameters : [ notificationServicesResourceName ]
        };
        WL.Server.invokeProcedure(lockInvocationData);
    }
}


适配器 XML 文件:

<wl:adapter name="PushAdapter"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:wl="http://www.worklight.com/integration"
    xmlns:http="http://www.worklight.com/integration/http">

    <displayName>PushAdapter</displayName>
    <description>PushAdapter</description>
    <connectivity>
        <connectionPolicy xsi:type="http:HTTPConnectionPolicyType">
            <protocol>http</protocol>
            <domain>${com.ibm.moi.ci.host}</domain>
            <port>${com.ibm.moi.ci.port}</port> 
        </connectionPolicy>
        <loadConstraints maxConcurrentConnectionsPerNode="300" />
    </connectivity>
    <!-- Replace this with appropriate procedures -->
    <procedure name="sendNotifications"/>
    <procedure name="submitNotification"/>

</wl:adapter>

所以我现在就开始运行了。 这是一个安全问题。当您在本地工作站上的 worklight studio 和 liberty profile 上运行应用程序时,某些安全功能会被禁用,但生产环境并非如此。

在开发模式下,所有没有显式 securityTest 的过程默认都有 wl_inprotected 我认为他们这样做是为了能够从 Eclipse 调用过程。在生产环境中,安全性得到增强,wl_unprotected 不被视为默认安全测试。

因此,我所做的就是为执行链中的所有过程添加 securityTest="wl_unprotected",但 sendNotifications 过程除外,该过程应该保留而无需进行秒测试。

就是这样 !

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

IBM Worklight 6.0.0.1 - 推送通知轮询在生产环境中不起作用 的相关文章

  • 安装分析后,我的 Worklight 6.2 控制台上没有运行时

    我刚刚安装了Worklight 6 2服务器 使用配置工具部署了一个简单的项目 并且运行正常 然后我按照知识中心的说明安装分析 之后 当我在浏览器中打开 WL 控制台时 我收到 找不到运行时 分析似乎运行良好 我的 war 文件位于 Lib
  • 关于如何将APN的设备令牌链接到注册用户的建议(通过phonegap或UIWebView)

    类似的问题在这里 jQueryMobile Phonegap 和设备令牌 iOS https stackoverflow com questions 9022983 jquerymobile phonegap and device toke
  • GcmBroadcastReceiver onReceive 方法在 Android 4.0.3 上未触发

    我正在编写一个支持 GCM 的 Android 4 0 3 程序 该应用程序注册良好 并且从服务器发送消息似乎也可以工作 通过消息 ID 从 Google 获得 成功 但是onReceive我的 BroadcastReceiver 上的方法
  • 打开解析推送通知时出现异常[关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 I setup 解析推送Android SDK 1 7 0 https parse com docs android g
  • 苹果推送通知限制

    我想知道我们一次向用户发送的苹果推送通知的数量是否有限制 我可以使用 APNS 服务一次发送 100 000 个推送通知吗 如果您在短时间内向同一设备发送多个通知 推送服务将仅发送最后一个通知 https developer apple c
  • Apple 推送通知 (APN) 不一致?

    通过 APN 使用 Apple 的推送通知时 我们遇到了一个令人困惑的问题 我们有以下场景 我猜是相当标准的 当我们的应用程序 我们在这里称之为 MyApp 首次安装并启动时 我们会请求用户授予通过 MyApp 向他发送推送通知的权限 在此
  • 错误 403:向 Cloud PubSub 发送测试消息时出错:用户无权执行此操作

    我想设置推送通知手表 但收到错误响应 我需要什么授权 Request Google API client getClient POST request ch curl init https www googleapis com gmail
  • 使用 BroadcastReceiver 进行推送通知时不会被调用

    我正在尝试在插件中使用 Android 的 GCM 推送通知 我正在从 Google 服务器获取有效的注册 ID 但是当我从服务器发送任何数据时 BroadcastReceiver根本没有被叫到 我认为问题在于清单中的权限 这是我正在使用的
  • 解析,如何向目标用户发送推送通知

    我已成功设置解析推送通知 并且在我的安装表中我同时拥有安装和设备令牌 我真正想做的是将推送通知发送给某些用户 而不是某些设备 如何将安装表绑定到使用表 以便我可以由用户进行查询并返回要推送到的设备ID From https parse co
  • android fcm 中未出现 oppo、vivo 应用程序终止通知

    在摩托罗拉测试应用程序 三星在应用程序被杀死时工作正常 但是当我在vivo测试应用程序时 如果应用程序被破坏 oppo将无法工作 public void onMessageReceived RemoteMessage remoteMessa
  • Cookie 中缺少安全属性:WL_PERSISTENT_COOKIE 和 testcookie

    在安全扫描结果中 我收到以下错误 WL PERSISTENT COOKIE 和 testcookie 的 加密会话 SSL Cookie 中缺少安全属性 我不知道如何为这些 cookie 设置安全属性 从 websphere 服务器它只允许
  • Flutter:即使应用程序关闭也推送通知

    我用 flutter 构建了一个应用程序 它的作用就像一个提醒 即使应用程序关闭 如何向用户显示通知 为了提醒我会推荐Flutter 本地通知插件 https pub dev packages flutter local notificat
  • GCM 推送通知延迟

    我们有一个应用程序 Ruby on Rails 向 Android 应用程序发送推送通知 我们面临着 GCM 的问题 其中一些通知要么被延迟 要么从未收到 考虑到这些通知是发送给员工而不是最终用户 我的问题是 在没有任何延迟或丢失的情况下发
  • 应用程序在后台时远程推送通知 swift 3

    我有一个可以接收远程推送通知的应用程序 我已经实施了didReceiveRemoteNotification这样 func application application UIApplication didReceiveRemoteNoti
  • 规范注册 ID 和消息 ID 格式

    我的理解有问题Canonical Registration Id并让谷歌返回它 我特意注册了两次我的Android应用程序 以测试Canonical Registration Id 但是当我尝试向两者推送消息时Registration Id
  • 应用程序未运行时处理推送通知

    当我的应用程序是not运行并收到推送通知 如果我单击该通知 应用程序将启动 但随后它不会提示用户我设置的警报视图 询问他们是否要查看通知的内容 它刚刚启动 就坐在那里 推送通知确实有效完美当应用程序is正在运行 无论是作为活动应用程序还是在
  • 从 Spring Boot 发送推送通知

    我有一个 springboot 应用程序 托管在我自己的家庭服务器上 我也有 sql 数据库设置 对于前端 我计划使用 android 进行初始测试阶段 然后将其转移到 flutter 我想知道如何将通知从 Spring Boot 发送到前
  • Android 开发应用程序密钥和应用程序秘密

    我正在尝试使用带氦气选项的城市飞艇为 Android 应用程序设置推送通知 但是 我需要为我的应用程序找到这些信息 但我不知道从哪里可以找到 任何意见或建议将不胜感激 谢谢你 For setting up Helium make sure
  • 使用 Android Firebase 堆栈推送通知

    我开发了使用 Firebase 接收推送通知的 Android 应用程序 我的代码基于 Firebase Google 官方文档 https firebase google com docs cloud messaging android
  • 调用 MobileFirst Adapter 授权失败

    不确定以前是否曾提出过同样的问题 我尝试发表评论但无法这样做 请参阅下面的链接 不管怎样 我刚刚将开发环境升级到 MobileFirst Studio 7 1 但我们在 7 0 中创建的适配器存在问题 适配器部署没有错误 但是当我尝试从浏览

随机推荐

  • 32位pyodbc读取64位访问(accdb)

    我在 Windows 8 1 64 位机器上运行 python 2 7 32 位 我有 Access 2013 和一个 accdb 文件 我试图从 python 和 pyodbc 访问该文件 我可以在 64 位 ODBC 管理器中创建 64
  • gnuplot 无法通过 ssh 命令工作

    所以我有一个 csv 还有一个 plt 文件 我跑gnuplot plt file plt一个png就诞生了 但如果我跑ssh sameuser samemachine gnuplot plt file plt 我收到 pngcario 错
  • ASP.NET Web API获取子列表(分层资源)

    我想使用 ASP NET Web Api 实现以下剩余架构 http mydomain api students http mydomain api students s123 http mydomain api students s123
  • 页面加载时显示 Firefox WebExtension 页面操作

    我一直在尝试通过阅读以下文档来了解如何使用 WebExtension 页面操作 https developer mozilla org en US Add ons WebExtensions manifest json page actio
  • Java 打包/构建 Jar 文件具体常用技术

    我浏览了该网站的所有常见帖子 但我的问题略有不同 打包具有许多其他 jar 文件作为依赖项的简单 Java 应用程序的最佳实践是什么 例如 我有 foo java 其中包含 main 以及从 foo java 访问的 foo1 java f
  • 取矩阵 r 中行的平均值

    我有以下深度和温度数据矩阵 855 行 2 列 并且想取每列中每 3 行的平均值 例如 1 6 7 18 91 2 5 4 18 91 3 4 0 18 59 4 6 7 20 37 5 6 7 20 05 6 2 7 20 21 7 4
  • PYQT:如何捕获python解释器的输出并将其显示在QEditText中?

    参考帖子here 有人可以给我详细解释如何将 print 语句的输出附加到 PYQT 中的 QEditext 我尝试了上面给出的代码 但它不完整 我得到 TypeError connect slot argument should be a
  • PHP 和 MySQL 错误:类 mysqli_result 的对象无法转换为字符串 [重复]

    这个问题在这里已经有答案了 我收到错误 mysqli result 类的对象无法转换为字符串 Code
  • 强命名会导致 C# 中的对象序列化出现问题吗?

    我序列化一些配置对象并将结果字节存储在数据库中 new BinaryFormatter Serialize memoryStream instance Convert ToBase64String memoryStream ToArray
  • 像 facebook 一样从 Javascript 更改 URL

    我目前正在开发一个面向 AJAX 的 Web 应用程序 我一直在寻找使用浏览器 URL 复制当前 AJAX 状态 或应用程序状态 的不同方法 因此刷新和后退按钮也可以工作 在过去的几周里 我看到了涉及使用哈希 和不同 JS 框架的不同方法
  • 如何在现有表单中显示 FSharp.Charting 图表?

    我不明白如何创建图表控件并将图表放置在现有表单中 我在网上找到的所有示例都以新表单显示图表 但我想将图表添加到我现有的表单之一 我在想这样的事情 let form new Form Text My form let lbl new Labe
  • R 函数识别不匹配的行

    我正在尝试比较 2 个 data frames V1 代表我的 CRM V2 代表我想要发送的潜在客户 V1 大约有 8k 个元素 V2 大约有 25k 个元素 我需要将 V2 中的每一行与 V1 中的每一行进行比较 丢弃 V1 中存在 V
  • 如何在.Net Framework中将方法注入到自动属性中

    我有一些具有许多属性的 Foo 类 public class Foo public int Property1 get set public int Property2 get set public int Property3 get se
  • 在 Redshift 中拆分行

    在我的表中 数据如下 col1 col2 col3 col4 A1 A2 A3 4 B1 B2 B3 3 C1 C2 C3 1 我需要如下输出 col1 col2 col3 col4 A1 A2 A3 1 A1 A2 A3 2 A1 A2
  • 如何在更多线程上运行 boost asio 解析器服务?

    我在 SNMPV2 实现中使用 boost asio ip udp resolver 来确定主机是否可达 using Resolver boost asio ip udp resolver Resolver resolver ioServi
  • 如何在 Perl 源代码中嵌入中文字符?

    在我的脚本中 我需要将一些汉字 qw 到字符串中 当我运行脚本时 perl 指出脚本中存在无法识别的字符 虽然我知道它一定与编码相关的东西有关 但我不知道如何解决它 所以向你寻求帮助 提前致谢 在 Perl 源代码中嵌入文字字符串很容易 使
  • 如何防止应用程序在完成任务之前关闭?

    我用 C 制作了一个 Windows 控制台应用程序 可以进行一些计算 应用程序窗口对用户来说是不可见的 应用程序作为任务运行 这些计算结果保存到数据库中 不幸的是 如果用户在保存数据期间关闭此应用程序 通过关闭计算机 并且并非所有数据都会
  • 使用 Spark 并行缓存和查询数据集

    我有一个要求 我想缓存一个数据集 然后通过在该数据集上并行触发 N 个查询来计算一些指标 并且所有这些查询都会计算类似的指标 只是过滤器会发生变化 并且我想在其中运行这些查询并行 因为响应时间至关重要 并且我想要缓存的数据集大小始终小于 G
  • 如何创建 100M 字节缓冲区

    我正在测试 Linux 上接口的吞吐量 我正在使用 DMA 进行数据传输 DMA 需要连续的内存位置 但 kmalloc 无法分配超过 1MB 的空间 有没有其他方法可以创建高达 100M 字节的大缓冲区位置 我认为 kmalloc 无法分
  • IBM Worklight 6.0.0.1 - 推送通知轮询在生产环境中不起作用

    我的问题是这样的 When in 开发环境 一切正常 轮询器工作正常 数据库状态发生变化等 When in 生产环境 日志中没有出现任何内容 数据库中也没有任何变化 我正在从数据库表中读取通知 推送通知事件来源 WL Server crea