2016-12-24 3 views
0

배경을아파치 NET의 ftp 때 listFiles 작동하지만 때 listFiles (문자열 경로 이름은) 내가 FTP를 통해 파일을 검색 스프링 통합을 사용하는 응용 프로그램 작업입니다

작동하지 않습니다. 나는 스프링 통합 인바운드 어댑터 중 하나를 사용하고 있었다. 그러나 반복되는 시도 후에도 나는 그것을 작동시킬 수 없었다. 그래서 나는 코드를 살펴보기 시작했고 랩 (wrap) 아래에서는 apache net api를 사용한다는 것을 알았다.

질문

아파치 평민에게 그물 라이브러리를 사용하여, 나는 같은 방법으로 로컬 코드를 작성하고 그것을 작동하지 않았다. 코드는 다음과 같습니다 -

FTPClient client = new FTPClient(); 
client.connect("x.x.x.x", 21); 
client.enterLocalPassiveMode(); 
client.login("xxx", "xxx"); 
FTPFile[] files = client.listFiles("/AMNH"); 

이 코드는 0 행을 반환합니다. 이것이 spring-integration이 call-client.listFiles ("/ AMNH")를 실행하는 방법입니다. 따라서 반환 된 파일 목록은 0이며 ftp 위치에 파일이 있어도 전체 응용 프로그램이 유휴 상태입니다.

그러나 다음 코드를 실행하면 파일을 검색 할 수 있습니다. 매개 변수를 전달할 때 메서드 listFiles에 무엇이 문제가 있는지 궁금해했고 어떻게 해결할 수 있습니까? 내가하지 실행할 때 listFiles의 고급 (문자열 경로 이름)

FTPClient client = new FTPClient(); 
client.connect("x.x.x.x", 21); 
client.enterLocalPassiveMode(); 
client.login("xxx", "xxx"); 
client.changeWorkingDirectory("/AMNH"); 
FTPFile[] files = client.listFiles(""); 
+0

두 시나리오에 대한 로그 파일을 보여주십시오. –

답변

0

하십시오이 changeWorkingDirectory에 대한 Reference Manual으로 살펴하지 않기 때문에 나는이 말을. DefaultFtpSessionFactory을 확장하고 postProcessClientAfterConnect() 콜백 만 구현하면됩니다.

+0

같은 목적으로 remoteDirectory 속성이 있습니까? 나는 연장 할 수있다. 그러나 필요가 있습니까? – user3276247

+0

remoteDirectory는 4.3 이후로 사용되지 않습니다. 아 .. 시간 낭비! 고마워. 많이 .. – user3276247

+0

여기 문제는 원격 디렉토리 속성에 관한 것이 아니라 FTP가 작업 디렉토리의 루트가 아닌 파일을 나열하는 것을 허용하지 않는다는 것 –

관련 문제