Как запустить FTP-сервер Apache MINA, используя Scala / Java? - PullRequest
4 голосов
/ 09 июня 2011

Я пытаюсь встроить FTP-сервер Apache MINA в свое приложение Scala, и у меня возникают проблемы с его выделением.Я использую Apache FtpServer 1.05 , и нашел пару примеров на их сайте, которые, кажется, не работают, когда я их скалирую.

Вот мой код:

package aperture

import org.apache.ftpserver.listener.ListenerFactory
import org.apache.ftpserver.ftplet._
import org.apache.ftpserver.{FtpServerFactory, FtpServer}
import java.io.File
import org.apache.ftpserver.usermanager.{UserFactory, SaltedPasswordEncryptor, PropertiesUserManagerFactory}

object Main {
    def main(args: Array[String]) {
        val serverFactory: FtpServerFactory = new FtpServerFactory()
        val listenerFactory: ListenerFactory = new ListenerFactory()

        listenerFactory.setPort(2221);
        listenerFactory.setServerAddress("localhost")
        listenerFactory.setImplicitSsl(false);

        serverFactory.addListener("default", listenerFactory.createListener())

        val userManagerFactory: PropertiesUserManagerFactory = new PropertiesUserManagerFactory()
        userManagerFactory.setFile(new File("myusers.properties"))
        userManagerFactory.setPasswordEncryptor(new SaltedPasswordEncryptor())
        val userManager: UserManager = userManagerFactory.createUserManager()

        val userFact: UserFactory = new UserFactory()
        userFact.setName("myNewUser")
        userFact.setPassword("secret")
        userFact.setHomeDirectory("ftproot")
        val user: User = userFact.createUser()
        userManager.save(user)

        serverFactory.setUserManager(userManagerFactory.createUserManager())

        // start the server
        val server: FtpServer = serverFactory.createServer()
        server.start()
    }
}

Код действителен, и сервер запускается через порт 2221, но я не могу подключиться к нему: ftp: localhost:2221: No address associated with hostname и ftp: 127.0.0.1:2221: Name or service not known.

Есть мысли?

1 Ответ

3 голосов
/ 10 июня 2011

Я делал две вещи неправильно:

  1. Я подключался к серверу ftp с помощью команды ftp localhost:2221 вместо правильного пути (с пробелом вместо двоеточия) ftp localhost 2221.
  2. Я создал UserManager, но никогда не использовал его. Я изменил serverFactory.setUserManager(userManagerFactory.createUserManager()) на serverFactory.setUserManager(userManager).
...