android 模拟器在 mobilefirst 上的 shouldStartProvisioning 错误
Posted
技术标签:
【中文标题】android 模拟器在 mobilefirst 上的 shouldStartProvisioning 错误【英文标题】:shouldStartProvisioning error for android simulator on mobilefirst 【发布时间】:2015-12-16 16:00:37 【问题描述】:最近将应用从 Worklight 6.2 迁移到 7.0。在本地运行的移动 Web 应用程序预览上,一切都很好。不工作的是使用 mobilefirst 的 eclipse 上的 android 预览。启动画面没有完全加载。我目前看到的唯一错误是
ReferenceError: shouldStartProvisioning is not defined
initCallback/<()
worklight.js:9680
WL.DeviceAuth.__isCertificateExists()
worklight.js:18942
initCallback()
worklight.js:9667
__WLClient/this.createProvisioningChallengeHandler/challengeHandler.handleChallenge/<()
worklight.js:9643
__WLDeviceAuth/this.init/<()
worklight.js:6662
WL.DeviceAuth.__initDeviceAuthManager()
worklight.js:18953
__WLDeviceAuth/this.init()
worklight.js:6662
__WLClient/this.createProvisioningChallengeHandler/challengeHandler.handleChallenge()
worklight.js:9642
AbstractChallengeHandler/this.startChallengeHandling()
worklight.js:9358
executeChallenge()
worklight.js:9281
__WLClient/this.checkResponseForChallenges()
worklight.js:9183
window.WLJSX.Ajax.WLRequest<.onWlFailure()
worklight.js:3606
bind/<()
worklight.js:957
window.WLJSX.Ajax.Request<.respondToReadyState()
worklight.js:1177
window.WLJSX.Ajax.Request<.onStateChange()
worklight.js:1112
这是来自 worklight.js
function initCallback(result)
if (challengeHandler.isCertificateChallengeResponse(challenge))
WL.DeviceAuth.saveCertificate(
//success callback
function()
var deviceAuthSettings =
token : challenge.ID.token,
isProvisioningEnabled : true,
provisioningEntity : challenge.ID.entity
;
challengeHandler.getDeviceAuthDataAsync(deviceAuthSettings);
,
//failure callback
function(err)
WL.DiagnosticDialog.showDialog(WL.ClientMessages.wlclientInitFailure, WL.ClientMessages.saveCertificateFailure, false, true, , err);
, challenge.ID.entity, challenge.certificate, challengeHandler.realm);
//handle save certificate
else
//handler device auth
WL.DeviceAuth.__isCertificateExists(challenge.ID.entity,
// success callback
function(result)
var isCertificateExists = WL.Utils.getCordovaPluginResponseObject(result, "isCertificateExists");
isCertificateExists = ("true" == isCertificateExists);
if (isCertificateExists)
var deviceAuthSettings =
token : challenge.ID.token,
isProvisioningEnabled : true,
provisioningEntity : challenge.ID.entity
;
challengeHandler.getDeviceAuthDataAsync(deviceAuthSettings);
else
shouldStartProvisioning();
;
,
// failure callback
function()
WL.DiagnosticDialog.showDialog(WL.ClientMessages.wlclientInitFailure, WL.ClientMessages.deviceAuthenticationFail, false, true, challenge);
);
function shouldStartProvisioning()
if (!challenge.ID.allowed)
//submiting an empty answer so it will resend, and then get the 401 again, hopefully is allowed
challengeHandler.submitChallengeAnswer();
else
if (challengeHandler.createCustomCsr != undefined)
challengeHandler.createCustomCsr(challenge.ID);
else
WL.Logger.warn("Function createJsonCsr() is deprecated. Use createCustomCsr() instead.");
challengeHandler.createJsonCsr(challenge.ID.entity, challengeHandler.realm, token:challenge.ID.token);
;
【问题讨论】:
添加了更多信息。显然 shouldStartProvisioning 存在于这个文件中,它也不是可编辑的。 @Iden_ader 【参考方案1】:我进行了一些内部和外部搜索,但没有找到任何有关此类问题的先前报告。我有一些建议可能有助于进一步诊断问题。首先,新项目是否会出现问题,或者只是迁移的项目会出现问题?你能否检查一下公共资源预览的输出,看看是否发生了同样的错误?只是想确保错误对于失败的场景是唯一的。接下来,您使用的 MobileFirst 的完整构建级别是多少?在 Eclipse 中,选择帮助 -> 关于 -> [MobileFirst 图标]。
【讨论】:
由于此内容不是答案,您应该将其放在问题的评论中。 *** 的工作方式与新闻组或论坛稍有不同——后续读者应该能够清楚地识别问答。其他所有内容都属于评论。您可以在帮助中心找到更多信息 :-) 这个问题只出现在这个项目中,一个新的启动就好了。此问题适用于 Android 和 iO,因为移动 Web 应用程序按预期启动。 MobileFirst 版本 7.0.0.00 扎卡里,感谢您的反馈。关于 MobileFirst 的版本,它还应该包含 yyyymmdd 形式的构建级别,例如 7.0.0.00-20150710-1555。如果您使用的版本不是最新的,我建议从 IBM Fix Central 站点 (www-933.ibm.com/support/fixcentral) 应用最新的 ifix。如果在那之后问题仍然存在,那么下一步将是通过产品支持提出 PMR。谢谢。以上是关于android 模拟器在 mobilefirst 上的 shouldStartProvisioning 错误的主要内容,如果未能解决你的问题,请参考以下文章
在 Google Appengine 中部署 MobileFirst 混合应用程序
MobileFirst Platform 适配器调用在模拟器中失败
升级到 iOS 9 和 MobileFirst 7.1 后无法登录设备或模拟器上的应用程序