2010-09-14 107 views
1

我試圖通過螞蟻內FTP拉出文件掛起,得到它打印「獲取文件」後掛着,所以我啓用調試螞蟻和我的輸出是ftp任務與螞蟻

[[email protected] net]# ant -d -f ftp_t.xml 
Apache Ant version 1.6.5 compiled on June 2 2005 
Buildfile: ftp_t.xml 
Adding reference: ant.PropertyHelper 
Detected Java version: 1.5 in: /root/jdk1.6.0_10/jre 
Detected OS: Linux 
Adding reference: ant.ComponentHelper 
Setting ro project property: ant.version -> Apache Ant version 1.6.5 compiled on June 2 2005 
Setting ro project property: ant.file -> /Test_Framework/tasks/net/ftp_t.xml 
Adding reference: ant.projectHelper 
Adding reference: ant.parsing.context 
Adding reference: ant.targets 
parsing buildfile /Test_Framework/tasks/net/ftp_t.xml with URI = file:///Test_Framework/tasks/net/ftp_t.xml 
Setting ro project property: ant.project.name -> FTP simple interface - ftp.xml 
Adding reference: FTP simple interface - ftp.xml 
Setting ro project property: ant.file.FTP simple interface - ftp.xml -> /Test_Framework/tasks/net/ftp_t.xml 
Project base dir set to: /Test_Framework/tasks/net 
+Target: 
+Target: ftpget 
Setting project property: ftpServerName -> xxxxx 
Setting project property: ftpUser -> xxxxx 
Setting project property: ftpPassword -> xxxx 
Setting project property: ftpRemoteDir -> /test 
Setting project property: ftpRemoteFile -> ReadMe.txt 
Setting project property: ftpLocalDir -> /local/test 
Attempting to create object of type org.apache.tools.ant.helper.DefaultExecutor 
Adding reference: ant.executor 
Build sequence for target(s) `ftpget' is [ftpget] 
Complete build sequence is [ftpget, ] 

ftpget: 
    [echo] FTP getting 'ReadMe.txt' from '/test' to '/local/test' 
     [ftp] Opening FTP connection to xxxxx 
     [ftp] connected 
     [ftp] logging in to FTP server 
     [ftp] login succeeded 
     [ftp] changing the remote directory 
     [ftp] getting files 
Could not load a dependent class (com/sun/media/jai/codec/FileSeekableStream) for type image 
Could not load a dependent class (com/jcraft/jsch/UserInfo) for type sshexec 
Could not load a dependent class (com/jcraft/jsch/UserInfo) for type scp 
Could not load a dependent class (jdepend/xmlui/JDepend) for type jdepend 
Could not load a dependent class (junit/framework/Test) for type junit 
fileset: Setup scanner in dir /local/test with patternSet{ includes: [ReadMe.txt] excludes: [] } 

我的代碼

<target name="ftpget" description="Get file over FTP"> 
    <fail message="Build Abrted! Failed to find property:ftpRemoteFile" unless="ftpRemoteFile"/> 
    <fail message="Build Abrted! Failed to find property:ftpLocalDir" unless="ftpLocalDir"/> 

    <echo message="FTP getting '${ftpRemoteFile}' from '${ftpRemoteDir}' to '${ftpLocalDir}'"/> 
    <ftp action="get" 
      server="${ftpServerName}" 
      userid="${ftpUser}" 
      password="${ftpPassword}" 
      verbose="true" 
      remotedir="${ftpRemoteDir}" 
      skipFailedTransfers="true"> 
     <fileset dir="${ftpLocalDir}"> 
      <include name="${ftpRemoteFile}"/> 
     </fileset> 
    </ftp> 

注意:正常的ftp工作正常。我正在使用Linux 64bit,ant 1.6.5和java 1.6.10

回答

2

看起來一切正常,直到你真正嘗試和檢索數據。 FTP使用兩個通道;一個用於控制,一個用於數據。在防火牆拒絕數據連接之前,這可以正常工作。 Passive mode嘗試解決此問題。您的FTP庫是否有「被動模式」或「PASV」選項?

+0

防火牆已啓用。現在它禁用後工作 – Soman 2010-09-15 09:24:35