大家下午好,周一 我在将移动应用程序部署到Windows Phone 8时遇到错误。
这是一个部署到windows8phone,android和iphone的Worklight 6.1.0.1混合应用程序。
这是一个用Angularjs编写的应用程序。
构建并部署到WL服务器是可以的,所有适配器的部署都可以。应用程序在iphone和android(设备)上正常运行。 通过使用WL模拟器,该应用程序可以正常使用Windows 8手机(我们正在测试诺基亚Lumia 820设备)。
然后,我打开视觉工作室项目(vs express 2013),包含在windowsphone8环境的本机文件夹中,并尝试在官方MS模拟器上直接在设备上运行。
应用程序在设备上启动后,我在WL服务器控制台中收到错误:
[错误] FWLSE0059E:登录领域 ' WLDeviceNoProvisioningLoginModule'失败。字段" deviceId"的 实例" null"包含空值;此字段的元数据 指定空值是非法的。[project MobileBanking]字段 " DEVICEID"实例" null"包含空值;的元数据 该字段指定空值是非法的。嵌套异常是 org.apache.openjpa.persistence.InvalidStateException:该字段 " DEVICEID"实例" null"包含空值;的元数据 此字段指定空值是非法的。 [错误] FWLSE0117E: 错误代码:4,错误说明:AUTHENTICATION_ERROR,错误消息: 使用loginModule执行身份验证时发生错误 WLDeviceNoProvisioningLoginModule,用户身份不可用。 [project MobileBanking] [project MobileBanking]
更多信息 - 身份验证。 我有一个领域和一个安全测试:
<realms>
<realm loginModule="AuthLoginModule" name="WSAuthRealm">
<className>com.worklight.integration.auth.AdapterAuthenticator</className>
<parameter name="login-function" value="AuthAdapter.onAuthRequired" />
<parameter name="logout-function" value="AuthAdapter.onLogout" />
</realm>
</realms>
<securityTests>
<customSecurityTest name="AuthAdapter-securityTest">
<test isInternalUserID="true" realm="WSAuthRealm" />
</customSecurityTest>
</securityTests>
我们还尝试了以下可能的解决方案:
也许麻烦在于本机wp8的坚果壳或者某些环境参数配置。
非常感谢。
答案 0 :(得分:1)
最后我们解决了。
这是关于$ routeProvider的一个angularjs问题 - &gt; templateUrl。
虽然看起来不是WL的问题。
使用windowsphone8时,Partials Url的根目录必须是 www ,即:
对于Android和Iphone,partials html的正确路径是
app.config(function($routeProvider, $locationProvider) {
$routeProvider.when('/', {
templateUrl : "partials/login.html",
controller : "LoginController"
});
...
对于WindowsPhone8,路径必须是绝对路径
app.config(function($routeProvider, $locationProvider) {
$routeProvider.when('/', {
templateUrl : "www/default/partials/login.html",
controller : "LoginController"
});
...
无论如何,错误消息仍然存在。但一切正常。