使用 WL.Client.connect API 时 MobileFirst 7.1 服务器访问被拒绝

MobileFirst 7.1 Server Access Denied when using WL.Client.connect API

我们在使用 WL.Client.connect API 时收到此错误消息

服务器错误日志:

[ERROR ] FWLSE0020E: Ajax request exception: Cannot find application environment, application=test, version=1.0, environment=iphone [project WLTestConnect]

[ERROR ] FWLSE0117E: Error code: 1, error description: INTERNAL_ERROR, error message: FWLSE0069E: An internal error occurred during gadget request [project WLTestConnect]Cannot find application environment, application=test, version=1.0, environment=iphone, User Identity {wl_antiXSRFRealm=null, wl_authenticityRealm=null, wl_directUpdateRealm=null, wl_remoteDisableRealm=null, SampleAppRealm=null, wl_deviceNoProvisioningRealm=null, SubscribeServlet=null, wl_anonymousUserRealm=null, wl_deviceAutoProvisioningRealm=null}. [project WLTestConnect] com.worklight.common.log.filters.ErrorFilter

[ERROR ] FWLSE0335E: Authorization failed: ClientId f5ac9a8cda443cfca33d1e7f926a71f90f8c67a1 was not found on the server. [project WLTestConnect]

场景如下:

  1. 在工作区 A 中创建 Hello MobileFirst 项目。
  2. 将项目部署到工作区 A 中的本地 MobileFirst Server。
  3. 将 Hello MobileFirst App 部署到 iphone,然后使用 WL.Client.connect API。我们收到连接成功回调。
  4. 导出这个名为 WLTestConnect 的 MobileFirst 项目。
  5. iPhone设备(iOS10.2.1)仍然运行。
  6. 切换到新的工作区 B。
  7. 将 WLTestConnect 项目导入工作区 B。
  8. 将 WLTestConnect 项目部署到本地 MobileFirst 服务器。
  9. 在 iPhone 设备中使用 WL.Client.connect,我们收到拒绝访问错误。

MobileFirst 版本:7.1.0.00-20151214-1857 & 7.1.0.00-20170608-1107

有没有办法避免访问被拒绝?

这是一个非常有效的错误消息和预期的行为。当您从 MobileFirst Studio 中的一个工作区移动到另一个工作区时,它会创建 MobileFirst 服务器和保存该服务器数据的数据库的新副本。

该应用程序尝试连接到 'new' 服务器,但错误消息基本上表明服务器无法识别此设备,因为它的数据库没有此设备连接到它的任何历史记录。

我们找到了解决该问题的方法:

设置worklight.properties文件

  1. mfp.session.independent=假
  2. 评论“#mfp.attrStore.type=数据库”

然后连接成功!