我构建了一个worklight应用程序。创建Android应用程序并使用本地机器测试此应用程序,它与emulator工作正常。但是当我尝试使用Android平板电脑测试此应用程序时,它通过错误“应用程序连接到服务失败”。
我尝试找到application-descriptor.xml并将localhost修复为192.168.1.1:8080
我的ip本地机器,但它无法正常工作。在我的平板电脑中,我无法转到192.168.1.1:8080/console/index.html
任何人都可以帮我解决这个问题。我怎么能在我的worklight Android应用程序中修复这个并在我的Android平板电脑上运行它
答案 0 :(得分:2)
要检查的一些事项:
- 您的平板电脑和Worklight开发机器是否在同一个无线网络上? (他们需要!)
- 您的计算机上是否有防火墙,可能需要进行配置才能让流量通过。作为测试,您可以暂时禁用防火墙,看看您是否可以访问(取决于禁用防火墙所涉及的风险的免责声明)。不禁用防火墙的测试是尝试从同一子网上的另一台台式机/笔记本电脑上访问192.168.1.1:8080。
答案 1 :(得分:1)
在字段主机名配置服务器中设置此IP。
重建
另一项测试是检查同一网络中其他机器的方向。
答案 2 :(得分:0)
在命令窗口中,运行ipconfig
并复制IPv4地址。这是您需要在文件application-descriptor.xml中作为worklightServerRootURL
的值放置的IP地址。
您正在使用的IP地址对我而言并不像您需要使用的正确(公共)IP地址。试试我的上述建议。
答案 3 :(得分:0)
如何在application-descriptor.xml中添加“192.168.181.1:8080”?
答案 4 :(得分:0)
我建议采用以下调试步骤:
a)转到您的设备浏览器并浏览到http: //xx.xx.xx.xx:8080/console
- >如果这不起作用,则会出现明显的IP地址问题。然后你必须找出原因,也许你有一个赛门铁克的东西可以阻止任何进入桌面的流量 - 他们这样做。你应该做一个明确的允许。
b)如果a)有效,那么您需要签入代码以确保您的应用程序在启动时尝试连接到服务器。或者,应用程序只会在调用适配器时尝试连接。
现在,转到您的代码。打开initOptions.js文件。我通常将connectOnStartup设置为true,但也启用onConnectionFailure,以便在没有连接时脱机运行。
var wlInitOptions = {
// # Should application automatically attempt to connect to Worklight Server on application start up
// # The default value is true, we are overriding it to false here.
connectOnStartup : true,
// # The callback function to invoke in case application fails to connect to Worklight Server
onConnectionFailure: function (){wlCommonInit();},
// # Worklight server connection timeout
timeout: 2000,
};
3)确保在application-descriptor.xml中有正确的URL
< worklightServerRootURL> http://xx.xx.xx.xx:8080 < / worklightServerRootURL>
如果您使用的是消费者版(真正购买的WL),那么您的网址就是。 < worklightServerRootURL> http://xx.xx.xx.xx:9080/worklight < / worklightServerRootURL>
(请注意,这些网址之间没有空格 - 只有这个网站在有换行符的时候放置一个空格)
将代码重新部署到WL服务器并创建新的APK文件。使用新的APK文件更新您的设备。
4)再次使用控制台进行测试,您应该看到控制台。点击预览应用链接,它应该有效。
5)现在您已在服务器和APK文件上更新了代码。在设备上再次打开它。
您是否仍然看到错误消息?
如果事情仍然无效。
6)转到应用设置,因为您已启用离线模式,它将允许您访问应用设置(这是Android中的第4个按钮)转到工作灯设置。选择服务器地址 - >将工作灯URL添加到服务器URL。当您返回应用程序时,这将自动从WL服务器重新加载内容。