除非我主动使用VM,为什么HttpURLConnection上的getInputStream会挂起到VirtualBox服务器?

时间:2015-03-11 08:17:54

标签: java virtualbox httpurlconnection hang

所以我有一台通过VirtualBox运行的虚拟机。它是Ubuntu而我对我有权访问的用户没有sudo权限。运行的服务器允许我通过VM上的localhost / page.php访问页面。我已将VirtualBox中的网络首选项设置为Bridged,而我的主机(MacBook Pro)位于我的WiFi网络上。

现在我试图在我的主机上编写一个访问VM服务器并读取页面的Java程序。我使用HttpURLConnection然后使用getInputStream并逐行查看BufferedReader的结果。我遇到的问题是,我在我的主机上通过Eclipse运行的java程序挂起,除非我继续使用我的VM并移动鼠标或键入或执行某些操作,然后继续。虚拟机无法锁定屏幕或存在任何电源管理问题,它始终处于启动状态。

我花了很多时间在线搜索并尝试将缓存属性设置为false,限制内容长度,使用带端口转发的NAT模式,将close connection属性设置为true,而不是使用openstream。没有什么能解决我的问题,看起来很奇怪。

TL; DR 我必须移动鼠标或在VirtualBox来宾机中键入我的主机上运行的程序才能访问服务器(本地访客,桥接到主机),使用HttpURLConnection getInputStream,并从中读取信息。

1 个答案:

答案 0 :(得分:0)

这听起来像是一个熵问题,尝试在运行测试时向启动时添加-Djava.security.egd = file:/ dev /./ urandom