【发布时间】:2014-01-23 12:41:39
【问题描述】:
我已经在worklight 6.1 version 中构建了应用程序,并且我们已经在本地环境中对其进行了测试,完全没有问题。我已经编写了适配器程序,直到现在它具有简单的程序方法并不安全,我们不需要任何安全性。
现在在生产环境中部署应用程序后,我根本无法调用工作灯程序。一些日志显示在下面给出的 Xcode 控制台上
2014-01-06 11:23:36.294 PROJECT[340:60b] DeviceAuthManager:getWorklightUniqueDeviceId --> returning UUID from the keychain
2014-01-06 11:23:36.666 PROJECT[340:60b] Adding request to wl_antiXSRFRealm challenge handler's waiting list
2014-01-06 11:23:36.668 PROJECT[340:60b] Adding request to wl_deviceNoProvisioningRealm challenge handler's waiting list
以及下面给出的在服务器端(IBM http 服务器)上显示的日志
/PROJECT/apps/services/api/PROJECT/ipad/0/query HTTP/1.1" 401 165
IPADDRESS - - [05/Jan/2014:23:54:36 -0600] "POST /PROJECT/apps/services/api/PROJECT/ipad/0/query HTTP/1.1" 401 166
IPADDRESS - - [05/Jan/2014:23:54:36 -0600] "POST /PROJECT/apps/services/api/PROJECT/ipad/0/query HTTP/1.1" 401 166
如果我在生产环境中部署时忘记了什么,请告诉我这可能是什么原因。
并且还让我知道适配器是否必须是安全的,或者我们可以在服务器端没有任何安全性的情况下保持。
在生产中部署适配器后,使用下面给出的方法调用适配器
function Authentication(user,pass) {
console.log('Hi Authentication');
busyInd.show();
var invocationData = {
adapter : 'CORE_ADAPTER',
procedure : 'Authentication',
parameters : [ user,pass ]
};
WL.Client.invokeProcedure(invocationData,{
onSuccess : AuthSuccess,
onFailure : function AuthFailure(response){ busyInd.hide();console.log("reponse failure "+response);},
});
}
根据下面给出的 Srik 评论在应用启动时,我得到了
2014-01-06 17:24:31.710 PROJECT[53760:c07] DEBUG: addDeviceIDHeader deviceIDSuccessCallback
2014-01-06 17:24:31.711 PROJECT[53760:c07] DEBUG: connectOnStartup finalizeInit
2014-01-06 17:24:31.712 PROJECT[53760:c07] DEBUG: before: app init onSuccess
2014-01-06 17:24:31.712 PROJECT[53760:c07] DEBUG: after: app init onSuccess
2014-01-06 17:24:31.712 PROJECT[53760:c07] DEBUG: added onPause event handler
2014-01-06 17:24:31.712 PROJECT[53760:c07] DEBUG: wlclient init success
并且在 initOption.js 文件中 ConnectOnStartup 为真,成功初始化后,只有应用程序正在调用适配器。
我用wireshark检查过这个工作灯当时像这样添加了一个斜线
http://localhost:10080/HDFC_SECURITIES_MEAP//apps/services/
【问题讨论】:
-
当您提到“根本无法调用工作灯程序”时,应用程序中究竟发生了什么?是否调用了 onFailure 回调?如果是,服务器的响应是什么。
-
NO 什么都没有被调用,即使它没有进入 onFailure....因为在适配器过程中我已经放置了一些日志,无论我是否接到电话。它没有显示任何日志。我认为它无法调用适配器。同一个应用程序在我们的本地环境中运行良好。
-
你没有提到你是否部署了适配器。如果您确实部署了它,请在调用该过程的位置添加代码。
-
请检查已编辑的问题,我在客户端提到了调用适配器程序的代码。
-
您是否在 invokeProcedure 之前进行连接?如果是,那成功了吗?如果没有,您能否使用 Wireshark 或类似的网络嗅探器来确保调用到达 Worklight 服务器。
标签: ibm-mobilefirst worklight-adapters