Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

FTPClientを使用して

はじめまして、プログラミング初心者の和也と申します。
現在、CommonsNetのver1.4.1を使用してFTPサーバへアクセスしてファイルリストを取得するという実装をしているのですが、ExceptionErrorが出て困っています。
========
実装内容
========
package autoUpdate;

import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPFile;
import org.apache.commons.net.ftp.FTPReply;
import org.apache.commons.net.ftp.parser.DefaultFTPFileEntryParserFactory;

public class ConnectionFTP {
    
    static String ftpIp = "localhost";
    static String ftpId = "XXXXX";
    static String ftpPw = "XXX";
    
    public static void main(String[] args) throws Exception {
        ftpConnect(ftpIp, ftpId, ftpPw);
    }

    private static void ftpConnect(String ftpIp2, String ftpId2, String ftpPw2) throws Exception {
        FTPClient client = new FTPClient();
        try {
            // 
            client.setDataTimeout(10 * 1000);
            client.setDefaultTimeout(10 * 1000);
            client.setParserFactory(new PrivateFTPFileEntryParserFactory());
            
            // 
            client.connect(ftpIp2);
            System.out.println("Connected to " + ftpIp2 + ".");
            System.out.println(client.getReplyString());
            int reply = client.getReplyCode();
            System.out.println(reply);
            
            // 
            if(!FTPReply.isPositiveCompletion(reply)) {
                client.disconnect();
                return;
            }
            client.login(ftpId2, ftpPw2);
            
            String[] name = client.listNames();
            System.out.println(name);
            
            FTPFile[] list = client.listFiles();
            System.out.println(list);
        }
        finally {
            if(client != null && client.isConnected()) {
                client.logout();
                client.disconnect();
            }
        }
    }
    
    static class PrivateFTPFileEntryParserFactory extends DefaultFTPFileEntryParserFactory {
    
    }
    
}

========
実行結果
========
Connected to localhost.
220 FTP ( BlackJumboDog Version 4.0.8 ) ready

220
[Ljava.lang.String;@47b480
Exception in thread "main" org.apache.commons.net.ftp.parser.ParserInitializationException: Error initializing parser
    at org.apache.commons.net.ftp.parser.DefaultFTPFileEntryParserFactory.createFileEntryParser(DefaultFTPFileEntryParserFactory.java:129)
    at org.apache.commons.net.ftp.FTPClient.initiateListParsing(FTPClient.java:2358)
    at org.apache.commons.net.ftp.FTPClient.listFiles(FTPClient.java:2141)
    at org.apache.commons.net.ftp.FTPClient.listFiles(FTPClient.java:2188)
    at autoUpdate.ConnectionFTP.ftpConnect(ConnectionFTP.java:44)
    at autoUpdate.ConnectionFTP.main(ConnectionFTP.java:16)

すみませんが、宜しくお願い致します。

2

回答

7230

閲覧

2件の回答

評価

0

使ったことないんでソースから適当に言いますが、createFileEntryParserにキーが渡ってないんじゃないでしょうか。

評価

0

mioさん、回答ありがとうございます。
> createFileEntryParserにキーが渡ってないんじゃないでしょうか。
→確認してみます。
 また、その結果で分からない事がある場合は宜しくお願い致します。 

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。