XML 验证错误 Mobilefirst 应用程序真实性

Posted

技术标签:

【中文标题】XML 验证错误 Mobilefirst 应用程序真实性【英文标题】:XML Validation Error Mobilefirst App Authenticity 【发布时间】:2015-07-13 12:14:01 【问题描述】:

我的服务器已从 IBM Worklight 6.0 升级到 IBM Mobilefirst 6.3

服务器当前正在运行我的移动应用程序的旧版本,它没有启用 AppAuthenticity。

当我上传较新版本的应用程序时,AppAuthenticity 选项仅对一个(Windows)环境启用,而其他环境则保持禁用状态。

重新启动后,Windows 环境版本变得和其他版本一样,而 iPAD 环境开始提供更改 AppAuthenticity 的选项。

我通过 WLADM CLI 列出了应用程序,它给了我以下错误:

XML 验证错误,读取自 https://URL/wladmin/management-apis/1.0/runtimes/worklight/applications/MYAPPS?locale=en_US: cvc-complex-type.4:属性“downloadLink”必须出现在元素上 'applicationEnvironmentDataAccess'。

请注意,如果应用程序单独运行在其他服务器上,使用相同的应用程序描述符和 WAR 文件可以正常工作,只有在同一服务器上上传新旧版本时,才会出现此问题。

【问题讨论】:

【参考方案1】:

你是说你的服务器有一个 .war 文件,上面有 2 个应用程序,一个来自 6.0,一个来自 6.3?

在 6.0 和 6.3 中有非常不同的应用程序真实性保护实现。这些不能共存于 same 单个 .war 文件中。

您需要将 2 个 .war 文件部署到您的应用程序服务器 - 一个用于处理 6.0 应用程序,另一个用于处理 6.3 应用程序。

相关的用户文档可以在这里阅读:http://www-01.ibm.com/support/knowledgecenter/SSHS8R_6.3.0/com.ibm.worklight.upgrade.doc/devenv/c_upgrade_to_srvr_in_production_env.html

【讨论】:

【参考方案2】:

正如 Idan 所说,6.0 和 6.3 应用程序不能一起处理,因为我只想在较新版本中启用 App Authenticity,我作为解决方法所做的是通过 WLADM 工具连接并禁用 App Authenticity通过命令行的旧版本。

以下是需要使用的命令:

\Worklight\shortcuts>wladm --url=https://server.url/wladmin --user=admin --passwordfile=password.properties

验证应用程序当前的真实性:

app version %CONTEXT% %APP_NAME% %Environment_Name% %versionCode% get authenticitycheckrule

禁用

app version %CONTEXT% %APP_NAME% %Environment_Name% %versionCode% set authenticitycheckrule DISABLED

【讨论】:

以上是关于XML 验证错误 Mobilefirst 应用程序真实性的主要内容,如果未能解决你的问题,请参考以下文章

MobileFirst 8:存储数据时遇到意外错误

Security Access Manager 示例项目上的 MobileFirst authenticationConfig.xml 7.1 迁移错误 - 如何解决?

mobilefirst 中的 SQL 适配器身份验证

MobileFirst 自定义身份验证初始化失败

使用 MobileFirst 在移动应用程序中使用 LDAP 服务器对用户进行身份验证

MobileFirst 7.1 服务器配置工具 - 管理控制台部署失败并出现 JVM 错误