我正在尝试使用org.apache.commons.net.ftp.FTPClient
连接到服务器并下载一些文件。当我在Windows 7机器上运行代码时,它始终连接并下载文件。当我在AIX机器上运行时,它会在80%的时间内失败,抛出java.net.ConnectException
,并显示“远程主机拒绝尝试连接操作”的消息。如果我经常重试,它最终会连接。如果我登录到FTPClient
代码无法一致连接的AIX框,并使用命令行中的ftp连接到代码连接有问题的同一台服务器,它会一直连接,我可以下载文件。一旦FTPClient
连接,我就没有任何问题。这只是导致我出现问题的连接。任何想法是FTPClient
在AIX上出现问题的原因?同样,并不是它永远不会连接,只是因为它不一致。下面是我用来连接的代码。
FTPClient ftp = new FTPClient();
try{
ftp.connect(server);
reply = ftp.getReplyCode();
}catch(Exception e){
log.error("FTPClient failed to connect: " + e.getClass().getName() + " " + e.getMessage());
throw e;
}
以下是异常的堆栈跟踪。
java.net.ConnectException: A remote host refused an attempted connect operation.
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:370)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:232)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:219)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
at java.net.Socket.connect(Socket.java:528)
at org.apache.commons.net.SocketClient.connect(SocketClient.java:168)
at org.apache.commons.net.SocketClient.connect(SocketClient.java:189)
at org.apache.commons.net.SocketClient.connect(SocketClient.java:278)
at com.nbi.plex.Builder.downLoad(Builder.java:198)