使用 WL.Server.setActiveUser() 找不到方法错误

Posted

技术标签:

【中文标题】使用 WL.Server.setActiveUser() 找不到方法错误【英文标题】:Can't find method error using WL.Server.setActiveUser() 【发布时间】:2013-09-30 21:08:04 【问题描述】:

我正在尝试确定在推送适配器中执行业务逻辑的最佳方法。我已经在本地环境中成功运行了示例 PushAdapter (Module_07_04_nativeAPIForiosPush),但是添加 WL.Server.setActiveUser() 会引发错误。

我在 Worklight Studio (6.0.0.201309171829) 中本地运行演示 PushAdapter 适配器,添加为适配器中的第一行:

WL.Server.setActiveUser("PushAppRealm",userId); ...

部署了适配器更改,使用相同的参数运行并在 Worklight 控制台中收到此错误:

找不到方法 com.worklight.integration.js.javascriptIntegrationLibraryImplementation.setUserIdentity(string,string)。 (/integration.js#36) FWLSE0101E: 原因:[project Module_07_04_nativeAPIForiOSPush]null

没有这条线,适配器运行没有任何问题。我正在尝试设置活动用户,因为我想接下来获取用户的首选项以确定是否创建通知的业务逻辑。还有其他方法吗?

我也在一个新的工作区中运行了它(在我将 Fix Pack 1 应用到 WL Studio 6 之后),但是结果相同。

问题是 1) 为什么会出现此错误?以及 2) 这是一种有效的方法吗?

谢谢。

【问题讨论】:

【参考方案1】:

var userIdentity =

        userId: "userid",
        displayName: "userid", 
        attributes: 
            foo: "bar"
        
;

WL.Server.setActiveUser("PushAppRealm", userIdentity);

这应该可行。但是对于此示例,您不应显式设置用户身份。WL.Server.setActiveUser() 方法用于在基于适配器的身份验证情况下设置用户身份。此示例使用基于表单的身份验证。

【讨论】:

以上是关于使用 WL.Server.setActiveUser() 找不到方法错误的主要内容,如果未能解决你的问题,请参考以下文章

在使用加载数据流步骤的猪中,使用(使用 PigStorage)和不使用它有啥区别?

今目标使用教程 今目标任务使用篇

Qt静态编译时使用OpenSSL有三种方式(不使用,动态使用,静态使用,默认是动态使用)

MySQL db 在按日期排序时使用“使用位置;使用临时;使用文件排序”

使用“使用严格”作为“使用强”的备份

Kettle java脚本组件的使用说明(简单使用升级使用)