Worklight 适配器部署
Posted
技术标签:
【中文标题】Worklight 适配器部署【英文标题】:Worklight Adapter Deployment 【发布时间】:2013-01-21 11:54:30 【问题描述】:我是 IBM Worklight 的新手,现在开始使用适配器,我能够从 Eclipse IDE 运行应用程序,但我需要一些帮助才能在设备(iPAD/平板电脑)中执行相同的应用程序。
我用一个简单的 html 创建了一个 worklight 项目,点击一个按钮,我称为 Http Adapter,它只是调用一个 Java 类并返回一个字符串。我已经在 Eclipse 中部署了适配器和移动应用程序。在点击http://localhost:8080/console
时,我可以看到适配器和移动应用程序。单击移动应用程序上的按钮时,它会从适配器中获得价值,它工作正常。
我已将该应用程序转换为 xcode 项目并连接我的 iPAD,该 iPAD 识别移动应用程序并将其安装在我的 iPAD 中,当单击移动应用程序中存在的按钮时,不显示来自适配器的值。
如何以及在何处配置适配器?在哪里指定我的适配器安装在某某机器的移动应用程序?请帮帮我
【问题讨论】:
您的应用程序是否打印出任何错误信息?您的应用程序是否配置为将请求发送到服务器而不是本地主机? iPad 和您的服务器之间的网络上是否有任何东西会阻止请求通过? 【参考方案1】:您的问题出在应用程序描述符中。
您无法从设备通过 localhost 访问 Worklight 服务器。
您需要为 application-descriptor.xml 提供一个有效的 URL (http://<YOUR WROKLIGHT SERVER IP>:<PORT, USUALLY 8080>
)。
【讨论】:
【参考方案2】:如何以及在何处配置适配器?在哪里指定我的适配器安装在某某机器的移动应用程序?请帮帮我
作为一个快速的澄清:
适配器本身是一个服务器端元素。您不会告诉应用程序本身(在部署时)配置与适配器的连接。但是,您需要配置与 Worklight 服务器 的连接。正如 Ravidor 所说,您可能需要调整 Worklight Server。
对于测试,localhost:8080 在同一台测试机器上工作正常,但在移动设备上 localhost 指向移动设备,而不是外部任何东西,因此它实际上是在寻找服务器本身。
将应用描述符调整为服务器的ip(或者测试的电脑的实际ip地址)。
使用 invokeProcedure 方法完成的 HTTP 请求随后将使用应用程序描述符中的服务器地址来调用托管相关适配器的 Worklight Server。
快速示例:
我的测试计算机/服务器的 ip 为 192.168.1.5 将显示 localhost 的 url 部分更改为 192.168.1.5(端口在 8080 处保持不变)。 从那里重建并部署应用程序。当您使用模拟器、桌面浏览器,甚至是连接到网络的真实硬件设备(如 iPad)时,它会连接到承载码头服务器的特定机器和端口。
在苹果设备上,您可以覆盖 iPad 设置 ->(应用名称)中的设置。应该有一个地方可以手动输入新的服务器位置。
希望这能澄清一点。
【讨论】:
【参考方案3】:如果您的应用程序在控制台中运行?如果是,那么它应该在设备上工作。检查设备上的 wifi 或 Gprs,因为 Worklight 应用程序将使用适配器访问 WL 服务器。所以你需要适当的互联网连接。请提供日志,您可能会错过查看错误
【讨论】:
【参考方案4】:一个小正确:如果应用程序在您的桌面浏览器中运行,它不保证它可以在 iPad 上运行。
通常桌面浏览器是在测试时运行网络服务器的同一台机器。 所以在大多数情况下,默认主机名将是“localhost”。
我可以建议您避免在 worklight.properties 和 application-descriptor.xml 中使用“localhost”并使用您的 IP 地址。此外,该 IP 地址应该可以从您的移动设备访问(通过 ping)。防火墙/路由器可能会阻止此类访问,因此请确保您之前正确配置它们!你在 iPad 上运行你的应用程序。
【讨论】:
以上是关于Worklight 适配器部署的主要内容,如果未能解决你的问题,请参考以下文章
IBM Worklight 6.0 - 将适配器部署到 Worklight Server 后出现 wl_antiXSRFRealm 错误