lf知识星球banner

LuckyFrame环境部署的一次掉坑记

2018-05-09 07:45:00
Seagull
原创
6420
摘要:记一次LuckyFrame客户端环境部署(用来做移动端自动化,所以客户端同时也安装了安卓SDK模拟器)的掉坑记,折腾了不少时间,终于找到原因,希望接下来的同学有碰到同样的问题不要掉坑里面了

最近因为项目移动端自动化的需要,找了一台机器部署一个新的LuckyFrame客户端,把JDK,客户端安装好以后, 再安装了 安卓SDK自带的模拟器 ,再启动客户端的监听,一切正常,客户端程序正常启动6633端口监听,本来以为一切都如想像那般容易。


然而问题来了.......


启动完监听后,服务端死活检测不到客户端的存在,第一反应程序肯定不会有问题,因为同样的程序已经部署N套,那肯定就是网络问题了,接下来排查问题...


1: 从服务端Ping客户端的IP,正常。

2:从服务端telnet客户端的IP 端口,正常。


脑袋冒汗,隐隐的感觉我要在这个问题上耗上一段时间了......


切换到自己电脑本地开发工具上调试代码,查看服务端尝试链接客户端抛出的异常信息

 java.rmi.ConnectIOException: Exception creating connection to: 129.214.62.141; nested exception is: 
java.net.SocketException: Network is unreachable: connect


这就奇怪了, 129.214.62.141这个IP根本不是我客户端的访问IP,这个IP是哪里来的呢?


打开客户端的命令行窗口,ipconfig再次确认查一下客户端的IP信息,瞬间明白了,这个IP是安装好安卓模拟器后,VirtualBox产生的一个IP。


虽然我在服务端配置客户端IP的时候,配置的IP是客户端本地链接的IP,但是服务端通过RMI接口检测客户端心跳的时候,仍然访问到了VirtualBox的虚拟IP上去了,所以导致检测失败。

原因:

RMI接口对于多网卡的服务注册,必须要指定一个IP, 此问题在V2.6版本会进行优化。如果有多网口的情况,去客户端的配置文件sys_config.properties中找到client.localhost.ip配置项,指定一个客户端的实际IP即可。


临时解决办法:

1:打开网络配置里面的网络适配器,可以看到有两个网络链接。

2:禁用VirtualBox的链接

3:重启下客户端机器,重启完成后,打开客户端6633端口监听程序

4:再次开启VirtualBox网络链接

5:再次尝试服务器检测客户端心跳,是不是已经正常可以访问了呢

文章原创申明
  • 本站文章以及相关内容除注明 转贴外,均为本站 原创翻译

  • 如果本站转载的文章涉嫌侵犯了您的权益,请在评论区留言或是邮件联系管理员及时删除 【admin@luckyframe.cn】

发表评论
评论通过审核后显示。
付费知识圈