Problemas com Apache FTP [RESOLVIDO]

Aew galera estou tendo um problema com o apache FTP, fiz um teste em outro servidor Windows 2008 e funcionou normal, agora quando tento listar os arquivos de certo servidor me da o seguinte erro

Exception in thread "AWT-EventQueue-0" org.apache.commons.net.ftp.parser.ParserInitializationException: Unknown parser type: WIN32

eu consigo conectar normalmente mas na hora de chamar o metodo .listFiles() ele me da esse erro.

Alguem pode me ajudar é urgente.

Obrigado.

Talvez se você colocasse aqui o trecho onde você se conecta e faz as requisições ficasse mais fácil de ajudar.

[code]try {
FTPClient ftp = FTPConexao.conectar();
System.out.println(ftp.printWorkingDirectory());

        System.out.println(ftp.printWorkingDirectory());

        String[] st = ftp.listNames();

        System.out.println(st.length);

        System.out.println(st[0]);


        if(null == ftp.getSystemName()) {
                  
           ftp.listFiles((String)null);

        } else {
            ftp.listFiles();             
        }

        System.out.println(ftp.getSystemName());



       /* FTPFile[] files = ftp.listFiles("/angelica");
        System.out.println(files.length);*/
    } catch (SocketException ex) {
        Logger.getLogger(teste.class.getName()).log(Level.SEVERE, null, ex);
    } catch (IOException ex) {
        Logger.getLogger(teste.class.getName()).log(Level.SEVERE, null, ex);
    }[/code]

Aqui o metodo de conexao

[code]public static FTPClient conectar() throws SocketException, IOException {

    if (ftp == null) {
        ftp = new FTPClient();
        ftp.connect("ftp.xxxx.com.br");
        ftp.login("xxxx.com.br", "xxxx");
    }
    return ftp;
}[/code]

Eu consigo conectar e listar os nomes normalmente o problema esta na hora que eu chamo o metodo listFiles, o servidor que estou tentando acessar eh Windows tanto que o getSystemName() é WIN32

ja testei em outro servidor e funciona normal o que pode ser

Erro

Exception in thread "AWT-EventQueue-0" org.apache.commons.net.ftp.parser.ParserInitializationException: Unknown parser type: WIN32 at org.apache.commons.net.ftp.parser.DefaultFTPFileEntryParserFactory.createFileEntryParser(DefaultFTPFileEntryParserFactory.java:132) at org.apache.commons.net.ftp.FTPClient.initiateListParsing(FTPClient.java:2263) at org.apache.commons.net.ftp.FTPClient.listFiles(FTPClient.java:2046) at org.apache.commons.net.ftp.FTPClient.listFiles(FTPClient.java:2093)

Andei pesquisando e encontrei as classes de configuração mas mesmo assim nao deu certo

[code]public class TesteFTP {

 public static void main(String[] args) throws SocketException, IOException {
     FTPClient ftp = new FTPClient();
     FTPClientConfig conf = new FTPClientConfig(FTPClientConfig.SYST_NT);

// conf.setServerTimeZoneId(“America/Denver”);
ftp.configure(conf);

     ftp.connect("ftp.coloradocontabilidade.com.br");
     checkReply(ftp, "FTP server refused connection.");

     System.out.println("Conectando-se");
     ftp.login("coloradoangelica.com.br", "24FebXTarA7d");
     checkReply(ftp, "FTP server refused login.");

     //System.out.println("Usuario: anonymous e senha em brancos");
     //ftp.changeWorkingDirectory("SakPatch");
     //System.out.println("Mudando para o diretório do sakray");

     String[] arquivos = ftp.listNames();
     checkReply(ftp, "FTP server refused listing names.");
      for (int i = 0; i < arquivos.length; i++) {
         System.out.println(arquivos[i]);
     }

     FTPFile[] files = ftp.listFiles();
     checkReply(ftp, "FTP server refused listing files");
     for (int i = 0; i < files.length; i++) {
         System.out.println(files[i].getName());
         System.out.println(files[i].getSize());
     }
 }

 private static void checkReply(FTPClient ftp, String message) throws IOException {
     System.out.println(ftp.getReplyString());
     int reply = ftp.getReplyCode();
     if (!FTPReply.isPositiveCompletion(reply)) {
         ftp.disconnect();
         System.err.println(message);
         System.exit(1);
     }
 }

}[/code]

mas dessa forma nao da erro, mas ele apenas lista os nomes no primeiro metodo

[quote=furacao123]
mas dessa forma nao da erro, mas ele apenas lista os nomes no primeiro metodo[/quote]
E não é isso que esse trecho deveria fazer?

Primeiro lista os nomes e depois os arquivos, e o laço faz mostrar os nomes de cada arquivo no caso só é executado o primeiro metodo

String[] arquivos = ftp.listNames();  

Consegui resolver setando um ParserEngine, dei uma pesquisada mas ainda não entendi direito a necessidade de fazer isso, pois em outro servidor o programa acesava normalmente o ftp sem isso.
Era um servidor Linux mas testei tambem em outro windows e funcionou agora esse que preciso acessar tive que incluir esse parserEngine da seguinte forma

FTPClient ftp = FTPConexao.conectar();
FTPListParseEngine engine = ftp.initiateListParsing("org.apache.commons.net.ftp.parser.EnterpriseUnixFTPFileEntryParser", (String)null);
FTPFile[] listaArquivos = engine.getFiles();

mas cada vez que eu executo changeWorkingDirectory() eu preciso atribuir o valor novamento para o engine

engine = ftp.initiateListParsing("org.apache.commons.net.ftp.parser.EnterpriseUnixFTPFileEntryParser", ftp.printWorkingDirectory());

agora as duvidas são, porque eu tive que criar esse engine e como ele funcionou com essa config EnterpriseUnixFTPFileEntryParser se o servidor é WIN32 ?
se alguem puder esclarecer minhas duvidas agradeço, mas lembrando que assim resolvi o problema.

Obrigado.