【问题标题】:ftp sending from windows to linux shows java.net.ConnectException从 Windows 发送到 linux 的 ftp 显示 java.net.ConnectException
【发布时间】:2013-11-13 07:10:52
【问题描述】:

我正在通过 ftp 从 Windows 2008 r2 server(64) 向 CentOS 64 发送文件。

我可以使用 dos 命令行通过 ftp 发送文件。它没有警告和错误。问题是当我尝试通过 java 代码做同样的事情时。它显示如下错误。

(对不起。我无法发布完整的消息。不知怎的,我无法在 Windows 控制台中拖动和复制)

java.net.ConnectionEception: Connection time out: connect
at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.doConnecet(Unknown Source)
at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at org.apache.commons.net.ftp.FTPClient._openDataConnection_(FTPClient.java:894)
at org.apache.commons.net.ftp.FTPClient._storeFile(FTPClient.java:633)
at org.apache.commons.net.ftp.FTPClient.__storeFile(FTPClient.java:624)
at org.apache.commons.net.ftp.FTPClient.storeFile(FTPClient.java:1976)
...

telnet ip 端口连接正常。登录也成功。但是当我调用 FTPClient.storeFile() 方法时,它会显示错误或无限延迟。

我还应该检查什么?

【问题讨论】:

  • 可能是防火墙问题

标签: java windows ftp connection-timeout apache-commons-net


【解决方案1】:
  • 检查防火墙(@see: ftp PORT 命令说明)
  • 尝试被动模式
  • webdav 或除 ftp 以外的任何东西(没有类似 PORT 命令的能力)

【讨论】:

  • 谢谢。我解决了这个问题。事实上,我被称为 enterPassiveMode() 方法。当我删除该代码时,错误就会消失。我认为有时 ActiveMode 是正确的。我应该多学习。非常感谢:D
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-12-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-29
  • 2020-08-08
相关资源
最近更新 更多