java - 来自 Java 的 UnknownHostException 但主机使用 Ping/nslookup/curl 解析

标签 java networking jboss dns apache-httpclient-4.x

当 Java EE 服务器尝试从其中一项服务解析主机名时,我们会收到以下异常。我们能够使用 ping/nslookup 命令手动解析盒子上的主机名。我们还能够使用具有与服务器尝试使用的相同参数的 curl 来触发该外部服务。所以这个问题似乎只有在我们尝试从 Java/Java EE 应用程序向外部主机发出请求时才会发生。

为了解决这个问题,我们在/etc/hosts 文件中手动添加了一个条目,它解决了问题,但我们想要一个永久的解决方案,这样我们就不必不断更改 IP。之前它在没有添加该条目的情况下工作,但突然间它停止工作了。

我们环境的详细信息:

操作系统:Cent OS 6.3

Java:JDK 1.6.0_24

Java EE 服务器:JBoss AS 7.1.1

HTTP 客户端库:httpclient-4.0.jar

在此先感谢您的帮助!

Error while checking salesforce license|: java.net.UnknownHostException: na15.salesforce.com at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:175) [rt.jar:1.6.0_24] at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:384) [rt.jar:1.6.0_24] at java.net.Socket.connect(Socket.java:546) [rt.jar:1.6.0_24] at sun.security.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:584) [jsse.jar:1.6.0_24] at org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:333) [httpclient-4.0.jar:4.0] at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:123) [httpclient-4.0.jar:4.0] at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:147) [httpclient-4.0.jar:4.0] at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:101) [httpclient-4.0.jar:4.0] at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:381) [httpclient-4.0.jar:4.0] at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:641) [httpclient-4.0.jar:4.0] at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:576) [httpclient-4.0.jar:4.0]

最佳答案

这很可能是网络管理、变更/配置管理或一般系统管理问题,而不是编程问题。

It was working before without adding that entry but all of a sudden it stopped working.

一种方法是尝试找出是什么改变导致它停止工作。这不是那种自然而然发生的事情。某人或某事更改了一些软件或配置以实现此目的。从它停止的时间(或您注意到的时间)开始,然后通过您的更改日志回溯。

听起来这是 Java DNS 解析过程的问题。解析器似乎没有尝试与普通 DNS 服务器通信,或者正在尝试但失败了。

我们无法为您调试它,但我发现这些资源有助于解释在 Java 中执行名称查找时应该发生的情况,并提供一些有关故障排除的想法。

资源:

关于java - 来自 Java 的 UnknownHostException 但主机使用 Ping/nslookup/curl 解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24188992/

相关文章:

使用 JBoss/Spring 和 NetBeans 部署 WebAppp 时出现 javax.naming.NameNotFoundException

jakarta-ee - 各种应用程序服务器中单个 jar 的类加载器策略?

servlets - Jboss 接缝自定义 servlet "No active event context"

Golang SSH 到思科无线 Controller 并运行命令

c++ - 禁用nagles算法会提高性能吗?

networking - IRC中的最短路径是如何保证的?

java - 在 Java 中使用 POI 框架读取 xlsm 文件时出错

java - 使用 Spring Test 执行 SQL 脚本正在提交更改

java - 如何刷新 JSF h :panelGroup?

java - 使用外部身份验证源时如何在 Spring Boot 中模拟身份验证