Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java.net.UnknownHostException-间歇问题_Java - Fatal编程技术网

java.net.UnknownHostException-间歇问题

java.net.UnknownHostException-间歇问题,java,Java,我有一个使用Java 1.6.0_17用Java编写的Web服务。 其中一个服务退出并使用以下代码筛选另一个我的服务器: HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("GET"); connection.connect(); InputStream stream = connection.getInputStream(); return

我有一个使用Java 1.6.0_17用Java编写的Web服务。
其中一个服务退出并使用以下代码筛选另一个我的服务器:

HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.connect();

InputStream stream = connection.getInputStream();

return convertStreamToString(stream);
在大多数情况下,大约80%的时间(非常粗略的猜测)这似乎可以正常工作,但在其他时间,当我连接到connection时,我会遇到以下异常。connect()是代码的一部分:

java.net.UnknownHostException: {my server name was here}
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:177)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
at java.net.Socket.connect(Socket.java:525)
at java.net.Socket.connect(Socket.java:475)
在上面的日志中,我用{my server name was here}替换了我们服务器的URL。 我能够运行nslookup,服务器可以很好地解析

该Web服务在Windows 2003标准x64版Service Pack 2服务器上的JBoss 4.2.3服务器上运行

我知道Unknownhost异常意味着无法解析服务器名称,但我仍在苦苦思索为什么会间歇性出现这种情况。 我不希望通过主机文件解析主机名,因为将来,当我们更改主机时,我希望能够更改DNS,而不必担心主机文件。
有人对如何解决这个问题有什么建议吗?
提前感谢您提供的任何帮助。

您的DNS服务器配置不稳定。设置一些监视以向系统管理员证明这一点。这可以像一个带有shell脚本的cron作业一样简单,也可以像Nogios监控系统一样复杂

当我们从Java5迁移到Java6时,我们遇到了类似的问题,因为在Java6之前,DNS解析的地址一直被缓存(或者直到JVM停止,以先到者为准)。因此,在一些脆弱的服务器上,当Java6过期DNS条目时,我们突然出现了问题


但是,我们意识到了这个问题,因为存在相反的问题:DNS循环中有冗余的LDAP服务器,当地址被永久缓存时,这当然不起作用。

您的两个服务器(WS-client和WS-host)在同一网络中,即没有代理/防火墙问题?ping您的服务器名称说明了什么?客户端和主机位于同一网络上,没有代理服务器,ping正确返回,即:回复自111.222.333.444:bytes=32次我们的网络团队刚刚解决了问题。实际上,我们的内容交换机上的DNS设置不正确,定期向错误的DNS服务器发送DNS请求。谢谢大家的回复。