该java异常在客户端和服务器端都有可能发生,引起该异常的原因有两个:
1,如果一端的Socket被关闭(或主动关闭,或因为异常退出而 引起的关闭),另一端仍发送数据,发送的第一个数据包引发该异常(Connect reset by peer)。2,一端退出,但退出时并未关闭该连接,另一端如果在从连接中读数据则抛出该异常(Connection reset)。简单的说就是在连接断开后的读和写操作引起的。
刚开始以为单纯的设置超时时长就可以,但报错依旧
所以就加上同步,再也不报错
public synchronized String downloadFromUrl(String url, String path) {
// String filePath = "rootDir//date//file_pdf//";
// String path_doc = "/file_pdf/";
String filePath = rootDir + Main.conf.getString("path_doc") + path;
File f = new File(filePath);
try {
logger.debug("<><>url<><>" + url);
URL httpurl = new URL(url);
FileUtils.copyURLToFile(httpurl, f);
// FileUtils.copyURLToFile(httpurl, f,30000,10000);//连接超时,下载超时
} catch (Exception e) {
logger.error("downloadFromUrl-err-url:" + url, e);
}
return f.getPath();
}