从 Worklight 6.2 升级生产 MobileFirst 7 服务器,适配器调用不起作用
Posted
技术标签:
【中文标题】从 Worklight 6.2 升级生产 MobileFirst 7 服务器,适配器调用不起作用【英文标题】:Production MobileFirst 7 Server upgrade from Worklight 6.2, Adapter call not working 【发布时间】:2015-05-07 06:46:58 【问题描述】:我们有一个与 Worklight 6.2 服务器一起工作的 MobileFirst 应用程序 - 也用于生产。我们正在使用 http 适配器:<connectionPolicy xsi:type="http:HTTPConnectionPolicyType">
目前我们正在将生产服务器更改为 7.0.0。在开发服务器上,我们可以测试我们的应用程序并且所有功能都正常。我们在构建配置中使用生产服务器创建了 .war,并与 android .wlapp 一起上传。现在,当应用程序尝试调用生产服务器上的任何适配器函数时,我们会收到 404。 invokeProcedure onFailure 返回 UNEXPECTED_ERROR。这是与:
服务器版本:7.0.0.00.20150312-0731 项目 WAR 版本:7.0.0.00.20150402-2001 适配器名称:XXXXX。版本:7.0.0.00.20150402-2001 应用:XXXXX-android-0.9.7,版本:7.0.0.00.20150402-2001我们没有在应用程序中启用安全性。 是否必须在服务器上启用某些东西才能允许旧类型适配器调用? 当我们使用升级的 MobileFirst Development Studio 7.0.0.00.20150430 作为开发平台进行测试时 - 相同的服务器版本,我们得到相同的 404(找不到上下文),但是尝试使用授权/v1/clients/instance 而不是 /应用程序/服务/api/XXXXX/android/查询
服务器升级应该解决这个问题吗?我们注意到有可用的更新。
服务器在 https 连接上,但在 WL 6.2 上是一样的。
【问题讨论】:
使用相同的服务器版本和工作室版本。提供messages.log,提供更完整的错误信息。 您好,我们已将服务器更新为与工作室相同的版本。只要未签名,我们就可以成功测试 Android 应用程序。但是使用签名的应用程序并将 publicSigningKey 添加到 android 配置到 application-descriptor.xml 时,应用程序与服务器的连接失败。这是 Android 日志:[link]m.uploadedit.com/ba3c/1431097202119.txt 【参考方案1】:根据 cmets 和提供的 messages.log 中的描述,很明显您正在尝试使用应用程序真实性保护。
此功能在 v6.2 中以某种方式工作,而在 v6.3 及更高版本中以不同方式工作。
从 cmets 看来,您只是添加了 publickSigningKey
- 这已经不够了。
请参阅更新的应用程序真实性保护教程以了解后续步骤:https://developer.ibm.com/mobilefirstplatform/documentation/getting-started-7-0/authentication-security/application-authenticity-protection/
一般步骤:
-
使用安全测试设置 authenticationConfig.xml
在 application-descriptor.xml 中的 environment 节点中添加安全测试
将 publicSigningKey 添加到
<publicSigningKey>
元素
添加应用包名<packageName>
元素
我相信您缺少第 4 步。 请注意,您现在还可以启用扩展真实性模式;按照教程中的说明进行操作。
关于第 3 步的注意事项:显然,当您导出已签名的 .apk 文件时,必须使用用于生成 publicSigningKey 的相同密钥库...否则会出现不匹配,并且真实性质询将失败。
在您的 authenticationConfig.xml 中,确保您有可用的 securityTest(= not 像您在下面的 cmets 中提供的文件中一样被注释掉。
在您的 application-descriptor.xml 中,您缺少 Android 环境元素中的 securityTest 属性:<android version="0.9.9">
更改为 <android version="0.9.9" securityTest="customTests">
【讨论】:
你好,伊丹,感谢您的快速回答。我的配置文件看起来像这样 [link]m.uploadedit.com/ba3c/1431099240756.txt 在我的答案底部查看我的注释,了解您正在使用的签名密钥以及您必须进行的验证。 它是否正确配置了我上面附加的 authenticationConfig.xml?当我单击 android 环境时,我已经使用 Eclipse 中的“提取公共签名密钥”功能生成了以上是关于从 Worklight 6.2 升级生产 MobileFirst 7 服务器,适配器调用不起作用的主要内容,如果未能解决你的问题,请参考以下文章
IBM Worklight 6.2。分析拓扑。主节点和数据节点
IBM Worklight - 如何从 Mac OS 的 6.2 切换回 6.1 版? [关闭]
有没有办法使用 worklight 6.2 或 phonegap 混合应用程序从 android 和 ios 中的另一个应用程序启动一个应用程序?