[Apache FTPClient] Filezilla Server와 Apache FTPClient 이용 파일 업로드 시에 425 Can't open data connection for transfer of "/" 메시지 발생시에 처리 방안
환경
FTP Server - FileZilla Server [ Windows Server 2012 Std ]
FTP Client - Tomcat 8.5 [Linux RedHat 7.5]
FileZilla Server가 운영 중인 서버에서는 FTP Client가 접근하는 Host IP 는 허용 되어 있는 상황입니다.
FTP Client 입장인 , RedHat Linux의 Firewalld Service가 구동 중인 상태에서 , FTP File Uploading 처리 시에 WAS에서는 Hang 처럼 멈춤 현상이 일어나며
[FTP Client 입장인 RedHat Linux 의 Firewalld Service 종료 시에는 정상적으로 파일이 업로드 처리 되는 것을 확인 하였습니다.]
FTP Server에서는 425 Can't open data connection for transfer of 메시지가 발생 하였습니다.
tcpdump를 이용하여 추적 하던 중 정확한 답은 찾지 못하였습니다. -_-;;
FTP Client에서 Firewalld 서비스를 중지를 할 수는 없는 상황이고 , 한 가지 대안 찾은 것은
Apache FTPClient를 이용한 파일 업로드 처리 시에 Login 메서드 호출 전 enterLocalPassiveMode를 호출 하니 425 메시지가 발생하던 사항은 해소가 되고 정상적으로 파일이 업로드 되었습니다.
// 연결을 시도 한다.
ftpClient.connect(ftpServerIP,portNum);
int reply = ftpClient.getReplyCode();
// 연결이 정상적인지 확인한다.
if(!FTPReply.isPositiveCompletion(reply))
downLoadResultHashMap.put(false, "FTPReply.isPositiveCompletion getReplyFailed 연결이 정상적으로 되지 않았습니다.");
// PASSIVE Mode 설정
ftpClient.enterLocalPassiveMode();
//로그인을 시도 한다.
ftpClient.login(ftpUserID, ftpUserPass);
// enterLocalPassiveMode() 메서드를 이용하지 않고 ,로그인 완료 후 pasv 호출 시에는 425 메시지가 발생 하였습니다.
//ftpClient.pasv();