FTPS 서버에 연결하기 위해 아파치 commons-net 3.6 라이브러리를 사용하고 있습니다. FTPS 서버는 타사의 NAT 뒤에 있습니다. 서버 측에서 설정을 변경할 수는 없습니다. 서버에 로그인 할 수는 있지만 파일을 나열 할 수는 없습니다. 일부 공개 FTP 및 FTPS 서버에서 동일한 코드를 시도했지만 결과가 성공적이었습니다. 그들은 NAT 뒤에 있지 않은 것 같습니다. 그러나 filezilla는 문제가있는 서버의 파일을 성공적으로 연결하고 나열 할 수 있습니다. 내 코드JAVA FTPSClient 파일 목록 문제
ftps.connect(server, port);
System.out.println("Connected to " + server + ".");
reply = ftps.getReplyCode();
ftps.enterLocalPassiveMode();
if (!FTPReply.isPositiveCompletion(reply)) {
ftps.disconnect();
System.err.println("FTP server refused connection.");
System.exit(1);
}
if (!ftps.login(username, password)) {
ftps.logout();
}
// ftps.setEnabledSessionCreation(false);
ftps.feat();
ftps.execPBSZ(0);
ftps.execPROT("P");
ftps.setFileType(FTP.BINARY_FILE_TYPE);
FTPFile dirs[] = ftps.listDirectories();
있다 그리고 내 FTPS 로그가 :
220 FTP Server ready.
AUTH TLS
234 AUTH TLS successful
Connected to x.x.x.x
USER *******
331 Password required for azercell
PASS *******
230 User myuser logged in
FEAT
211-Features:
MDTM
MFMT
LANG bg-BG;en-US;fr-FR;it-IT;ja-JP;ko-KR;ru-RU;zh-CN;zh-TW
TVFS
UTF8
AUTH TLS
MFF modify;UNIX.group;UNIX.mode;
MLST modify*;perm*;size*;type*;unique*;UNIX.group*;UNIX.mode*;UNIX.owner*;
PBSZ
PROT
REST STREAM
SIZE
211 End
PBSZ 0
200 PBSZ 0 successful
PROT P
200 Protection set to Private
TYPE I
200 Type set to I
SYST
215 UNIX Type: L8
PASV
227 Entering Passive Mode (192,168,2,50,192,12).
[Replacing PASV mode reply address 192.168.2.50 with x.x.x.x]
LIST
150 Opening BINARY mode data connection for file list
425 Unable to build data connection: Operation not permitted
내가 제대로 NAT 연결 뒤에 그 이전 버전에 3.6 공유지-NET 라이브러리 이전을 couldnt 핸들을 읽을 것입니다.
아무도 도와 줄 수 있습니까? 내 코드에 어떤 문제가 있습니까?
그것은 어리석은 대답이 될 수 있지만 "filezilla가 성공적으로 연결할 수 있고 파일을 나열 할 수 있습니다"그래서 당신은 디렉토리가 아닌 파일을 볼 수 있도록 디렉토리가 개인 파일이지만 파일이 아니므로 FTPFile [ ] files1 = ftps.listFiles(); –
LizLamperouge, 전에 해봤습니다. 동일한 오류 – ali
확인, 올바른 디렉토리에 있는지 확인 하시겠습니까? ftps.printWorkingDirectory();를 시도하십시오. ftps.changeWorkingDirectory ("/ directory"); –