解决方案 »

  1.   

    代码中可以正常连接到FTP,也能进入目录下,但是无法获取文件,后台输出如下211-Status for user FTP_CDHK from 114.255.71.181:
        Stored 0 files, 0 kBytes
        Retrieved 0 files, 0 kBytes
    211 End of status.true
    211-Status for user FTP_CDHK from 114.255.71.181:
        Stored 0 files, 0 kBytes
        Retrieved 0 files, 0 kBytes
    211 End of status.
      

  2.   

    119.16.39.92这个跟 114.255.71.181哪个是FTP服务器IP?检查你的网络是否有代理?
      

  3.   

    您好,是这样的,119.16.39.92是FTP服务器地址,114.255.71.181不知道是什么,我们这边的网络没有代理奇怪的是,使用谷歌浏览器和FTP客户端软件可以正常下载,使用IE一直卡在连接中,使用JAVA可以登录成功,但看不见文件。
      

  4.   

    在我本地,使用FTP客户端和谷歌浏览器是可以正常使用FTP服务器的。
    使用IE浏览器登录后一直卡在跳转。
    JAVA中使用的是org.apache.commons.net这个包,代码是绝对没有问题的,可以连接成功并进入文件夹
    但是无法读取文件夹下的文件。
    ftp用户权限是没有问题的。
      

  5.   

    获得不到,
     Stored 0 files, 0 kBytes
        Retrieved 0 files, 0 kBytes但是使用FileZilla客户端可以正常下载
      

  6.   

    后台的错误
    java.net.ConnectException: Connection timed out: connect
    at java.net.PlainSocketImpl.socketConnect(Native Method)
    at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351)
    at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:213)
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:200)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
    at java.net.Socket.connect(Socket.java:529)
    at java.net.Socket.connect(Socket.java:478)
    at java.net.Socket.<init>(Socket.java:375)
    at java.net.Socket.<init>(Socket.java:189)
    at javax.net.DefaultSocketFactory.createSocket(SocketFactory.java:206)
    at org.apache.commons.net.ftp.FTPClient._openDataConnection_(FTPClient.java:592)
    at org.apache.commons.net.ftp.FTPClient.initiateListParsing(FTPClient.java:2545)
    at org.apache.commons.net.ftp.FTPClient.initiateListParsing(FTPClient.java:2519)
    at org.apache.commons.net.ftp.FTPClient.listFiles(FTPClient.java:2275)
    at com.bireturn.cames.ftpTask.FtpForEmail.downloadAndEmail(FtpForEmail.java:48)
    at com.bireturn.cames.ftpTask.FtpForEmail.main(FtpForEmail.java:143)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)
    Exception in thread "main" java.lang.NullPointerException
    at com.bireturn.cames.ftpTask.FtpForEmail.downloadAndEmail(FtpForEmail.java:80)
    at com.bireturn.cames.ftpTask.FtpForEmail.main(FtpForEmail.java:143)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)
      

  7.   

    看你的异常是提示,你这个貌似是由于没有关闭connection导致,你看看Connection 有没有close
      

  8.   

    不是的 是卡在FTPFile[] fs = ftp.listFiles();这句大约几秒报出的错,我感觉是连接超时,这个情况用IE登录也有,IE登录后卡在刷新目录。
    但是谷歌是正常的
      

  9.   

    也不行,这个问题很蛋疼,因为FTP是客户自己架的,我们还没有办法远程操作。
      

  10.   

    谢谢,但是我在本地配的FTP服务器就可以用。功能整体代码已经写好了,后续的功能全部跑通了,就在源头这读取有问题,您说我能淡定么
      

  11.   

    您好,是这样的,119.16.39.92是FTP服务器地址,114.255.71.181不知道是什么,我们这边的网络没有代理奇怪的是,使用谷歌浏览器和FTP客户端软件可以正常下载,使用IE一直卡在连接中,使用JAVA可以登录成功,但看不见文件。114是你跑java程序的客户端IP,你这个IP连不上119的ftp服务器,java.net.ConnectException: Connection timed out: connect这个报错就是这个原因检测你的IE浏览器是否设置了代理?
      

  12.   

    你登录以后什么也别做,先ftp.listFiles(directory);打印出来看看
      

  13.   

    listFiles(String pathname)
    Using the default system autodetect mechanism, obtain a list of file information for the current working directory or for just a single file.listNames()
    Obtain a list of filenames in the current working directory This information is obtained through the NLST command.官方文档是这么写的,不知道为什么你要用listNames,明显第一个靠谱嘛
      

  14.   

    你的connection应该是没问题的,因为login正常。我觉得你可以两个方面检查一下:
    1.检查一下你call的API,搜索一下是否有人讨论过这样的bug
    2.你找个抓包工具抓一下chrome的,然后再比比你java的