2011-12-22 37 views
7

मैं कोशिश कर रहा हूँ, चींटी के साथ, एक Windows Server 2008 R2 FTP सर्वर पर FTP के माध्यम से एक ज़िप-फाइल को अपलोड (अगर यह मायने रखती है)। मेरे पास निर्देशिका/रिलीज बनाने के लिए एक समान कार्य है, जो काम करता है, फिर भी किसी भी तरह से एफ़टीपी के माध्यम से अपलोड करने से मुझे समस्याएं मिलती हैं।चींटी एफ़टीपी कार्य विफल रहता है: java.net.SocketException

<ftp action="put" 
      userid="${adapter.ftp.username}" 
      password="${adapter.ftp.password}" 
      server="${ftp.hostname}" 
      retriesAllowed="5" 
      verbose="true" 
      systemTypeKey="WINDOWS" 
      remotedir="/Release" > 

     <fileset dir="."> 
      <include name="Adapter.zip"/> 
     </fileset> 
    </ftp> 

चींटी डीबग लॉग:

[ftp] Opening FTP connection to 192.168.2.120 
    [ftp] custom configuration 
    [ftp] custom config: system key = WINDOWS 
    [ftp] custom config: server language code = 
    [ftp] connected 
    [ftp] logging in to FTP server 
    [ftp] login succeeded 
    [ftp] changing the remote directory to /Release 
    [ftp] sending files 
    fileset: Setup scanner in dir C:\dir with patternSet{ includes: [adapter.zip] excludes: [] } 
    [ftp] transferring C:\dir\adapter.zip 
    [ftp] try #1: IO error (adapter.zip), retrying 
    /.../ 
    [ftp] try #6: IO error (adapter.zip), number of maximum retries reached (5), giving up 
    [ftp] disconnecting 
    build.xml:165: error during FTP transfer: java.net.SocketException: Software caused connection abort: socket write error 
at org.apache.tools.ant.taskdefs.optional.net.FTP.execute(FTP.java:2538) 
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291) 
at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
at java.lang.reflect.Method.invoke(Unknown Source) 
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) 
at org.apache.tools.ant.Task.perform(Task.java:348) 
at org.apache.tools.ant.Target.execute(Target.java:390) 
at org.apache.tools.ant.Target.performTasks(Target.java:411) 
at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1399) 
at org.apache.tools.ant.Project.executeTarget(Project.java:1368) 
at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41) 
at org.eclipse.ant.internal.launching.remote.EclipseDefaultExecutor.executeTargets(EclipseDefaultExecutor.java:32) 
at org.apache.tools.ant.Project.executeTargets(Project.java:1251) 
at org.eclipse.ant.internal.launching.remote.InternalAntRunner.run(InternalAntRunner.java:424) 
at org.eclipse.ant.internal.launching.remote.InternalAntRunner.main(InternalAntRunner.java:138) 
    Caused by: java.net.SocketException: Software caused connection abort: socket write error 
at java.net.SocketOutputStream.socketWrite0(Native Method) 
at java.net.SocketOutputStream.socketWrite(Unknown Source) 
at java.net.SocketOutputStream.write(Unknown Source) 
at sun.nio.cs.StreamEncoder.writeBytes(Unknown Source) 
at sun.nio.cs.StreamEncoder.implFlushBuffer(Unknown Source) 
at sun.nio.cs.StreamEncoder.implFlush(Unknown Source) 
at sun.nio.cs.StreamEncoder.flush(Unknown Source) 
at java.io.OutputStreamWriter.flush(Unknown Source) 
at java.io.BufferedWriter.flush(Unknown Source) 
at org.apache.commons.net.ftp.FTP.sendCommand(FTP.java:472) 
at org.apache.commons.net.ftp.FTP.sendCommand(FTP.java:534) 
at org.apache.commons.net.ftp.FTP.port(FTP.java:862) 
at org.apache.commons.net.ftp.FTPClient._openDataConnection_(FTPClient.java:463) 
at org.apache.commons.net.ftp.FTPClient.__storeFile(FTPClient.java:374) 
at org.apache.commons.net.ftp.FTPClient.storeFile(FTPClient.java:1379) 
at org.apache.tools.ant.taskdefs.optional.net.FTP.sendFile(FTP.java:2149) 
at org.apache.tools.ant.taskdefs.optional.net.FTP$2.execute(FTP.java:1792) 
at org.apache.tools.ant.util.RetryHandler.execute(RetryHandler.java:57) 
at org.apache.tools.ant.taskdefs.optional.net.FTP.executeRetryable(FTP.java:1709) 
at org.apache.tools.ant.taskdefs.optional.net.FTP.transferFiles(FTP.java:1788) 
at org.apache.tools.ant.taskdefs.optional.net.FTP.transferFiles(FTP.java:1845) 
at org.apache.tools.ant.taskdefs.optional.net.FTP.execute(FTP.java:2534) 
... 15 more 

क्या मैं गलत कर रहा हूँ?

+0

मुझे एक ही समस्या है, लेकिन फ़ायरवॉल बंद नहीं कर सकता क्योंकि मैं व्यवस्थापक नहीं हूं। कोई अन्य समाधान? – clamp

+0

नोट: फ़ाइलजीला जैसे किसी अन्य FTP क्लाइंट का उपयोग ठीक काम करता है! – clamp

उत्तर

2

विंडोज फ़ायरवॉल को बंद करने से समस्या हल हो गई।

2

कोशिश करने लायक एक चीज़ निष्क्रिय ftp है।

का चयन करता है निष्क्रिय मोड ("हाँ") स्थानान्तरण, बेहतर के माध्यम से-फ़ायरवॉल कनेक्टिविटी के लिए, प्रदर्शन की कीमत पर: चींटी ftp task इस के लिए एक passive विशेषता है। "नहीं"

सक्रिय और निष्क्रिय मोड here के बीच अंतर का एक लिखना है। मुख्य बिंदु यह है कि ftp कमांड के लिए (एमकेडीआईआर और ओडी प्रश्न में काम करने वाले चडीर सहित) एक एकल खुला बंदरगाह - आमतौर पर पोर्ट 21 - का उपयोग किया जाता है। लेकिन डेटा स्थानांतरण के लिए एक अलग, संभवतः फ़ायरवॉल-अवरुद्ध बंदरगाह का उपयोग किया जाता है। एफटीपी के साथ फ़ायरवॉल से संबंधित समस्याएं कभी-कभी ऊपर वर्णित लक्षण दिखा सकती हैं।

+0

धन्यवाद! हालांकि यह मदद नहीं करता है, अभी भी निष्क्रिय = "हां" के साथ एक ही त्रुटि है। लेकिन शायद हम सही रास्ते पर हैं, क्योंकि सूची और एमकेडीआईआर जैसे आदेश ठीक काम करते हैं। बस भेजो और विफल रहता है। – clamp

संबंधित मुद्दे