Hi,

in search of a Java FTP Application Server I just stumbled over FTPServer.
After downloading and installing the binaries I encountered the behaviour
that a client could connect to the ftp server but did not even get a login
prompt.

Stepping through the code I discovered the following snippet in
FtpServerSocketFactory:

   public ServerSocket createServerSocket() throws Exception {     
        ServerSocket ssocket = null;
        if(m_serverAddress == null) {
            ssocket = new ServerSocket(m_port, 100);
        }
        else {
            new ServerSocket(m_port, 100, m_serverAddress);
        }
        return ssocket;
    }

After changing to:

   public ServerSocket createServerSocket() throws Exception {     
        ServerSocket ssocket = null;
        if(m_serverAddress == null) {
            ssocket = new ServerSocket(m_port, 100);
        }
        else {
            ssocket = new ServerSocket(m_port, 100, m_serverAddress);
        }
        return ssocket;
    }

it worked like a charm.

Btw., I found a task in Jira concerning the ability to run FtpServer as
Windows Service. 
The following worked for me, maybe somebody finds it useful:

- Download JavaService 2.0.6 (does not work with 2.0.5)
- Copy JavaService.exe to <Ftpserver>\bin-directory
- install Service using the following batch (of course, local paths would
have to be adapted, commandline parameters would have to be changed if
another configuration type should be used):
=====

SET FTPSERVER_HOME=C:\Programme\jakarta-ftpserver
SET FTPSERVER_LIB=%FTPSERVER_HOME%\common\lib
SET FTPSERVER_CLASSES=%FTPSERVER_HOME%\common\classes
SET JAVA_HOME=C:\Programme\j2sdk1.5.0_01
SET
SERVER_CLASSPATH=%JAVA_HOME%\lib\tools.jar;%FTPSERVER_CLASSES%;%FTPSERVER_LI
B%\commons-logging-1.0.3.jar;%FTPSERVER_LIB%\log4j-1.2.12.jar;%FTPSERVER_LIB
%\ftpserver-dev.jar;

FtpServerService.exe -uninstall JakartaFtpServer
FtpServerService.exe -install JakartaFtpServer
%JAVA_HOME%\jre\bin\server\jvm.dll -Djava.class.path=%SERVER_CLASSPATH%
-start org.apache.ftpserver.commandline.CommandLine -params -xml
C:/Programme/jakarta-ftpserver/res/conf/ftpd.xml -out
%FTPSERVER_HOME%\stdout.log -err %FTPSERVER_HOME%\stderr.log -current
%FTPSERVER_HOME%

=====

Regards

Daniel

Reply via email to