2015-01-24 26 views
0

나중에 수정 된 파일을 FTP 서버에 업로드하는 프로젝트를 진행하고 있습니다 ... 파일을 업로드하는 것 외에는 모든 것이 있습니다. FTP 서버에 성공적으로 연결할 수 있지만 파일이 업로드되면 프로그램이 몇 분 동안 중단 된 다음 시간이 초과되었다고 표시됩니다. (명심 나는 로그인 정보를 생략)Java FTP 연결 시간이 초과되었습니다

FTPClient fClient = new FTPClient(); 
      try { 
       fClient.connect(server, port); 
       showServerReply(fClient); 
       int replyCode = fClient.getReplyCode(); 
       if (!FTPReply.isPositiveCompletion(replyCode)) { 
        System.out.println("Operation failed. Server reply code: " + replyCode); 
        return; 
       } 
       boolean success = fClient.login(user, pass); 
       showServerReply(fClient); 
       if (!success) { 
        System.out.println("Could not login to the server"); 

       } else { 
        System.out.println("You are now logged on!"); 
        loginLoop = false; 
       } 
       fClient.enterLocalPassiveMode(); 
       fClient.setFileType(FTP.BINARY_FILE_TYPE); 
       File localFile = new File("files\\shared.txt"); 
       String remoteFile = "shared.txt"; 
       InputStream inputStream = new FileInputStream(localFile); 
       System.out.println("Start uploading the file"); 
       boolean done = fClient.storeFile(remoteFile, inputStream); 
       inputStream.close(); 
       if (done) { 
       System.out.println(remoteFile+" has been uploaded successfully"); 
       } 
      } catch (IOException ex) { 
       System.out.println("Oops! Something wrong happened"); 
       ex.printStackTrace(); 
      }finally { 
      try { 
       if (fClient.isConnected()) { 
        fClient.logout(); 
        fClient.disconnect(); 
        System.out.println("FTP Disconnected"); 
       } 
      } catch (IOException ex) { 
       ex.printStackTrace(); 
      } 
     } 

정말 오늘까지 아파치 코 몬즈 FTP 엉망 적이 없다 : 여기

java.net.ConnectException: Connection timed out: connect 
    at java.net.DualStackPlainSocketImpl.connect0(Native Method) 
    at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:79) 
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339) 
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200) 
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182) 
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172) 
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) 
    at java.net.Socket.connect(Socket.java:579) 
    at org.apache.commons.net.ftp.FTPClient._openDataConnection_(FTPClient.java:762) 
    at org.apache.commons.net.ftp.FTPClient._storeFile(FTPClient.java:565) 
    at org.apache.commons.net.ftp.FTPClient.__storeFile(FTPClient.java:557) 
    at org.apache.commons.net.ftp.FTPClient.storeFile(FTPClient.java:1795) 
    at AdvertisementCreator.main(AdvertisementCreator.java:128) 
e 

내가 FTP 연결에있는 코드입니다. 누구나 통찰력을 제공 할 수 있다면 크게 감사하겠습니다.

편집 : 다음 줄을 추가하기 전에 파일을 전송했지만 서버에서 열려고 시도했을 때 파일이 비어 있다는 것을 잊어 버렸습니다.

먼저, 서버의 이름이 올바르게 입력되어 있는지 확인 :

   fClient.enterLocalPassiveMode(); 
       fClient.setFileType(FTP.BINARY_FILE_TYPE); 

답변

0

이 먼저 디버깅해야합니다 일반적인 conectivity 문제입니다. 또한 포트를 올바르게 지정했는지 확인하십시오 (어떤 이유로 든 잘 알려진 FTP 포트 21이 아닌 경우).

그런 다음 로컬 호스트와 원격 FTP 서버간에 TCP 연결을 설정하십시오. 예를 들어, 명령 셸을 열고 "telnet 21"을 실행하십시오.

  • 오류가 발생하면 해당 서버에 연결할 수 없습니다. 해당 위치에서 액세스 할 수 없습니다.
  • 그렇지 않으면 터미널이 지워지면 종료 할 수 있습니다. 연결이 성공적으로 완료되었습니다. 이 경우 시스템 설정에서 프록시을 사용하고 있는지 확인하십시오 (예 : 제어판의 \ 인터넷 옵션 \ 연결 \ LAN에 표시됨). 그래, 당신은 JVM에 같은 프록시 매개 변수를 설정해야하는 경우를 실행하는 경우 :
java -Dftp.socksProxyHost=<proxy host> -Dftp.socksProxyPort=<proxy port> -Djava.net.socks.username=<proxy username> -Djava.net.socks.password=<proxy user password> -classpath ... MainClass 

자바의 모든 networking properties을 봐.

또 다른 가능성은 일부 로컬 방화벽이이 연결을 차단하고 있다는 것입니다. 그것을 확인하고 방화벽의 매뉴얼을 읽으십시오.

+0

원래 포스트 인 Little Santi에 뭔가를 추가했습니다 ... 패시브 모드로 들어가서 실수로 파일 유형을 설정하지 않고 시도해 보았습니다. 서버로 전송했지만 파일을 열려고하면 파일이 비어있었습니다. 그것. 이것이 영향을 미치는지 확실하지 않습니다. – user4490680

+0

지금 상황이 어떻습니까? 연결 시간 초과 오류가 여전히 발생합니까? 또는 파일을 전송해야하고 이제받은 파일이 비어 있습니까? 실행 추적을 게시하면 도움이 될 수 있습니다. –

+0

현재 내 문제는 연결 시간 제한입니다. 여기 내 코드에서 내가 사용하고있는 튜토리얼을 보았다. http://www.codejava.net/java-se/networking/ftp/java-ftp-file-upload-tutorial-and-example – user4490680

관련 문제