【问题标题】:IBM WORKLIGHT 6.1 - Issue in calling Adapter procedure in IOS after deploying on productionIBM WORKLIGHT 6.1 - 在生产中部署后在 IOS 中调用适配器过程的问题
【发布时间】: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


【解决方案1】:

在 worlight.plist 文件中删除 url 末尾的斜杠后,此问题现已解决。这是ios5ios6、ios7` 的测试,所有构建都没有问题,甚至没有一次我们遇到异常。 .plist 是完全可编辑的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-19
    • 1970-01-01
    • 2014-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-17
    相关资源
    最近更新 更多