IBM Worklight 6.0.0.1 - 适配器中的超时设置
Posted
技术标签:
【中文标题】IBM Worklight 6.0.0.1 - 适配器中的超时设置【英文标题】:IBM Worklight 6.0.0.1 - Timeout setting in Adapters 【发布时间】:2013-12-02 10:57:29 【问题描述】:使用WL.Client.invokeProcedure
从应用程序调用适配器时如何更改超时?
我已阅读以下帖子中的答案,但它不起作用: How to increase the adapter procedure timeout value in Worklight?
我的配置:
initOptions.js
timeout: 600000
适配器 XML
<procedure name="addInsertarMensaje" securityTest="wl_unprotected" requestTimeoutInSeconds="600">
适配器调用
var timeout = 600000;
var invocationOptions =
onSuccess: successSynchDoc,
onFailure: errorSynchDoc,
invocationContext: context,
timeout: timeout
;
Android LogCat:
12-02 11:23:04.603: D/Mapfre(21661): MyCustomTrace: Invoking the adapter
12-02 11:23:05.564: D/Mapfre(21661): Request [http://192.168.1.39:10080/xxx/apps/services/api/Mapfre/android/query]
12-02 11:23:26.214: D/Mapfre(21661): MyCustomTrace: After invoking the adapter
12-02 11:24:29.297: E/Mapfre(21661): [http://192.168.1.39:10080/xxx/apps/services/api/Mapfre/android/query] Host is not responsive. Try to manually access the URL through the android emulator browser to verify connectivity.
有最大值吗?
这些是每个部分的痕迹。
在应用中:
12-02 14:30:24.473: D/Mapfre(8641): Custom Trace. Just befor WL.Client.invokeProcedure
12-02 14:30:25.103: D/Mapfre(8641): Request [http://192.168.1.39:10080/xxx/apps/services/api/Mapfre/android/query]
12-02 14:31:42.670: E/Mapfre(8641): [http://192.168.1.39:10080/xxx/apps/services/api/Mapfre/android/query] Host is not responsive. Try to manually access the URL through the android emulator browser to verify connectivity.
在从应用接收调用的适配器中:
[2/12/13 14:31:45:224 CET] 000000bf ht.integration.js.javascriptIntegrationLibraryImplementation I Custom Trace. Into Adapter implementation.
在从主机接收应答的适配器中:
[2/12/13 14:33:34:714 CET] 000000bf ht.integration.js.JavaScriptIntegrationLibraryImplementation I Custom Trace. Received id: 3
【问题讨论】:
【参考方案1】: 应用程序没有调用适配器。基本图:Application << >>[ Worklight Server << >> Adapter ]<< >> Backend
简短说明:
在 initOptions.js 中,timeout
属性与应用程序等待连接到 Worklight Server 的时间量相关。
在适配器的 XML 中,requestTimeoutInSeconds
属性与 Worklight Server 等待后端响应的时间有关。
在调用选项中,timeout
属性与应用程序等待 Worklight Server 响应的时间有关。
在您的情况下,您甚至没有到达 Worklight Server 的错误点,更不用说调用适配器过程了。
验证您是否可以访问服务器;按照错误消息中的说明进行操作 - 尝试在您设备的移动浏览器中加载 Worklight Console 验证设备和服务器是否在同一个网络中 验证防火墙(如果启用)没有阻止任何关键端口或地址如果您确实到达了 Worklight Server,由于显然没有经过 600 秒,我相信主机根本无法到达。确保您指向正确的主机地址,并且没有任何东西阻止连接成功通过。
如果找到了主机,但路径或网络中有其他不正确的地方,则会返回响应,但不会等待 600 秒。
【讨论】:
我已经用每个部分的痕迹和时间戳编辑了这个问题。正在发送的消息是 4mg 消息... 这两行没有帮助;如答案中所写,请确保主机正确,按照答案底部的验证步骤进行操作。 为什么不呢?一切都是对的。我到达适配器,适配器到达主机,适配器接收主机应答。因此,所有主机(Worklight Server 和最终主机)都已被访问并正在工作。唯一不工作的部分是在适配器返回答案之前引发超时的应用程序。以上是关于IBM Worklight 6.0.0.1 - 适配器中的超时设置的主要内容,如果未能解决你的问题,请参考以下文章
IBM Worklight 6.0.0.1 - 部署到生产服务器时无法初始化 Worklight Project
IBM Worklight 6.0.0.1 - 部署 .wlapp 时出错
IBM Worklight 6.0.0.1 - 点击通知时未打开启用推送的应用程序
IBM Worklight 6.0.0.1 - 应用程序认证