测试嵌入式Mina FTPServer是否真正启动

时间:2011-05-16 09:27:20

标签: java ftp apache-mina

我以编程方式编写了一个apache Server的启动代码,如下所示:

public void _start()
{
    String Path = "C:\\Dokumente und Einstellungen\\andjock\\Desktop\\ab";

    File ftpDirectory = new File(Path);
    ftpDirectory.mkdirs(); 


    FtpServerFactory serverFactory = new FtpServerFactory();
    ListenerFactory factory = new ListenerFactory();
    factory.setPort(2221); 

    try {
        serverFactory.addListener("default", factory.createListener());

        PropertiesUserManagerFactory userFactory = new PropertiesUserManagerFactory();
        File userFile = new File("C:\\Dokumente und Einstellungen\\andjock\\Desktop\\ftpusers.properties");
        userFactory.setFile(userFile);


        UserManager um = userFactory.createUserManager();


        BaseUser user = new BaseUser();
        user.setName("myNewUser");
        user.setPassword("secret");
        user.setHomeDirectory(Path);


        um.save(user);

        serverFactory.setUserManager(um);

        FtpServer ftpServer = serverFactory.createServer();
        ftpServer.start();


    } catch (Exception e) {

        Logger  LOGGER = Logger.getLogger(TestapacheFtpServer.class);
        LOGGER.log(Level.FATAL, "Unable to start test ftpserver", e);
    }

我怎么知道服务器真的有效?

如何从“外部”访问此apache服务器?

我在我的机器上尝试使用telnet和ftp(ftp 127.0.0.1),但我收到了:

  

FTP:connect:未知错误代码

有人知道吗?我只是不想依赖于jvm日志,而是测试它,并访问启动它

1 个答案:

答案 0 :(得分:2)

我明白了!我使用FTP客户端库(apache commons库)编写了一个客户端来测试连接并列出文件;类似的东西

FTPClient ftp = new FTPClient();


    ftp.connect(InetAddress.getLocalHost(), 2221);// or "localhost" in your case
      String loging_success = ftp.login("myNewUser", "secret") == true ? "success" : "failed"; 
      System.out.println("login: "+ loging_success);


      FTPFile[] files = ftp.listFiles();  
      System.out.println("Listed "+files.length+" files.");
      for(FTPFile file : files) {
       System.out.println(file.getName());
      }