задача ftp зависает с муравьем - PullRequest
1 голос
/ 14 сентября 2010

Я пытаюсь вытащить файл через ftp в ant, он зависает после печати «получения файлов», поэтому я включил отладку в ant, и мой вывод

[root@LODIVM11SE001 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 ]

2 голосов
/ 15 сентября 2010

Похоже, что все работает нормально, пока вы на самом деле не попытаетесь получить данные.FTP использует два канала;один для контроля и один для данных.Это работает нормально, пока брандмауэр не запретит подключение к данным. Пассивный режим пытается обойти это.В вашей библиотеке FTP есть опция «пассивный режим» или «PASV»?

0 голосов
/ 14 сентября 2010

Задача Ant FTP требует зависимостей, библиотек, которые должны быть на пути к классам для правильной работы.См. Ссылку ниже,

http://ant.apache.org/manual/install.html#commons-net

Чтобы использовать задачу FTP, вам потребуется jakarta-oro 2.0.8 или более поздняя версия и commons-net

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...