Hi,
I am connecting to an ftp server with my username and password. When I call ftpClient.listNames(); it returns 0 length string array although i am very sure that there are files inside.
I also know that when I changed the ftp server to another one this function works. So I am assuming the server that I connected has a weird ftp server. When I called the function ftpClient.getSystemName() it returns UNKNOWN Type: L8.
If I call ftpClient.listNames I got this exception
org.apache.commons.net.ftp.parser.ParserInitializationException: Unknown parser type: UNKNOWN Type: L8
at org.apache.commons.net.ftp.parser.DefaultFTPFileEntryParserFactory.createFileEntryParser(DefaultFTPFileEntryParserFactory.java:125)
at org.apache.commons.net.ftp.FTPClient.initiateListParsing(FTPClient.java:2362)
at org.apache.commons.net.ftp.FTPClient.listFiles(FTPClient.java:2145)
at org.apache.commons.net.ftp.FTPClient.listFiles(FTPClient.java:2192)
I have to get the filenames from the server, so how can I solve the problem.
Thanks for the helps.
Burak Ulutoprak
I tracked and suspect the method "org.apache.commons.net.ftp.FTPClient#initiateListParsing(FTPFileEntryParser, String)" (is called by "org.apache.commons.net.ftp.FTPClient#listFiles(String)").
The suspected code is:
if ((socket = openDataConnection(FTPCommand.LIST, pathname)) == null)
{ return engine; // we end up here! }(see http://commons.apache.org/net/xref/org/apache/commons/net/ftp/FTPClient.html#2392
)
If i set a breakpoint at this line "getReplyString()" delivers "200 PORT command successful".
The trace of my use case (delete a directory recursivly) with logging turned on:
TRACE 19.12.2007 12:02:41.621 (de.espirit.firstspirit.io.FtpFileSystemOperations): SENT: LIST LIST /home/tomcat/webapps/intranet/test
TRACE 19.12.2007 12:02:41.621 (de.espirit.firstspirit.io.FtpFileSystemOperations): RECEIVED: 200 PORT command successful
DEBUG 19.12.2007 12:02:41.621 (de.espirit.firstspirit.io.FtpFileSystemOperations): no files in path /home/tomcat/webapps/intranet/test
TRACE 19.12.2007 12:02:41.621 (de.espirit.firstspirit.io.FtpFileSystemOperations): SENT: RMD RMD /home/tomcat/webapps/intranet/test
WARN 19.12.2007 12:02:41.621 (de.espirit.firstspirit.io.FtpFileSystemOperations): RECEIVED: 425 Unable to build data connection: Connection refused
The same RMD command on the shell:
>ftp XXXXX
Verbindung mit corona.e-spirit.de wurde hergestellt.
220 ProFTPD 1.2.10 Server (XXXXX) [XXX.XXX.XXX.XXX]
Benutzer (XXXXX:(none)): xxxxxx
331 Password required for xxxxxx.
Kennwort:
230 User xxxxxx logged in.
ftp> rmdir /home/tomcat/webapps/intranet/test
550 /home/tomcat/webapps/intranet/test: Directory not empty
ftp> dir /home/tomcat/webapps/intranet/test
200 PORT command successful
150 Opening ASCII mode data connection for file list
rw-rr- 1 intranetftp intranet 86 Dec 19 11:02 test.bin226 Transfer complete.
FTP: 64d Bytes empfangen in 0,00Sekunden 68000,00KB/s
ftp>