본문 바로가기
카테고리 없음

[Apache FTPClient] Filezilla Server와 Apache FTPClient 이용 파일 업로드 시에 425 Can't open data connection for transfer of "/" 메시지 발생시에 처리 방안

by Hwoarang757 2021. 11. 26.

[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();