【问题标题】:FTPSClient returns MalformedServerReplyException: cannot parse response codeFTPSClient 返回 MalformedServerReplyException:无法解析响应代码
【发布时间】:2013-03-15 07:39:25
【问题描述】:

我设置了 SFTP 连接。我使用了 WinCSP 和 Filezilla,测试服务器运行没有问题。 java代码来自apache commons-net 2.0,它给了我意想不到的错误

代码

private String ftpServer="XXX.xx.x.XX";
private int ftpPort=99;
private String ftpUserName="myUserName";
private String ftpPassword="myPassword";

FTPSClient ftp = null;
        try{
            ftp = new FTPSClient();
            ftp.connect(hostname, port)
        } catch (Exception e){
           Logger.debug(e)
        }

堆栈跟踪

Server reply:SSH-2.0-WeOnlyDo-wodFTPD 2.3.6.165
org.apache.commons.net.MalformedServerReplyException: Could not parse response code.
at org.apache.commons.net.ftp.FTP.__getReply(FTP.java:315)
    at org.apache.commons.net.ftp.FTP._connectAction_(FTP.java:364)
    at org.apache.commons.net.ftp.FTPClient._connectAction_(FTPClient.java:540)
    at org.apache.commons.net.ftp.FTPSClient._connectAction_(FTPSClient.java:167)
    at org.apache.commons.net.SocketClient.connect(SocketClient.java:178)
    at myHomeFtpService.getFtpConnection(HomeFtpService.java:40)

【问题讨论】:

    标签: java apache-commons ftps


    【解决方案1】:

    因为您使用 FTP 客户端连接到 SSH 服务器。 FTPS 和 SFTP 是两种不同的协议。

    WinSCP 和 Filezilla 都可以正常工作,因为它们支持 SFTP。

    【讨论】:

    • 如果我要将 SFTP 服务器更改为 FTPS 服务器。在不使用 FTPS 类更改我的 Java 代码的情况下是否可以工作?
    • 由于 FTPS 比 FTP 更复杂,因此可能仍然需要进行一些更改,例如隐式/显式模式。如果您的连接将通过某个防火墙,您可能希望在发送 PORT/PASV 命令时明确禁用加密,以允许防火墙查看您将使用的端口并允许该端口,或者您需要强制 FTP 数据连接通过某个端口.
    • 如果我必须使用 SFTP 测试服务器,我可以使用任何 Java 库来连接 apache-commons 吗?
    • 我不知道任何来自 apache-commons 的信息。对于 SFTP 库,请看这个问题:stackoverflow.com/questions/14617。就个人而言,我对schmizz.net/sshj很满意。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-27
    • 2015-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多