【发布时间】:2014-01-09 19:40:45
【问题描述】:
出于某种原因,我从下面的代码中收到了java.net.ConnectException: Connection timed out。它在我的本地计算机上运行良好,我可以通过本地和开发服务器上的浏览器访问它,但是在开发服务器上尝试读取它时出现此错误。
public List<NodeMap> downloadFile(String fileUrl) {
InputStream inputStream = null;
try {
URL url = new URL(fileUrl);
URLConnection con = url.openConnection();
con.setConnectTimeout(60000);
con.setReadTimeout(60000);
inputStream = con.getInputStream();
CSVReader csvReader = new CSVReader(new InputStreamReader(inputStream),',','"');
return iterateRows(csvReader);
}
catch (IOException e) {
LOG.error("Node mapping file", e);
}
finally {
IOUtils.closeQuietly(inputStream);
}
return null;
}
全栈
java.net.ConnectException: Connection timed out
at java.net.PlainSocketImpl.socketConnect(Native Method) ~[na:1.7.0_21]
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339) ~[na:1.7.0_21]
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200) ~[na:1.7.0_21]
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182) ~[na:1.7.0_21]
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:391) ~[na:1.7.0_21]
at java.net.Socket.connect(Socket.java:579) ~[na:1.7.0_21]
at sun.net.NetworkClient.doConnect(NetworkClient.java:175) ~[na:1.7.0_21]
at sun.net.www.http.HttpClient.openServer(HttpClient.java:378) ~[na:1.7.0_21]
at sun.net.www.http.HttpClient.openServer(HttpClient.java:473) ~[na:1.7.0_21]
at sun.net.www.http.HttpClient.<init>(HttpClient.java:203) ~[na:1.7.0_21]
at sun.net.www.http.HttpClient.New(HttpClient.java:290) ~[na:1.7.0_21]
at sun.net.www.http.HttpClient.New(HttpClient.java:306) ~[na:1.7.0_21]
at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:995) ~[na:1.7.0_21]
at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:931) ~[na:1.7.0_21]
at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:849) ~[na:1.7.0_21]
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1299) ~[na:1.7.0_21]
【问题讨论】:
-
可能在您的开发服务器上的浏览器配置中还有一个代理配置,这就是它在浏览器而不是程序中工作的原因?
-
关闭 csvReader(它也应该关闭 inputStream)
-
我不知道代理配置是什么意思。
-
意思是,你的浏览器不直接访问web服务器。在浏览器设置中,您可以添加代理服务器 IP,然后所有请求都将通过该 IP 进行路由。如果您使用的是 chrome,请转到设置 -> 高级设置 -> 网络 -> 更改代理设置 -> 局域网设置。如果那里配置了代理,也应该在您的代码中使用它。另外,您正在访问的 URL,它在哪里运行?本地还是开发?您是否在本地计算机上尝试过代码并成功运行?
-
我的浏览器中没有代理。
标签: java spring tomcat timeout urlconnection