Не могу сказать, хотел ли исходный вопросник настроить FtpServer через XML или он не знает, требуется ли это встраивание.
Как ясно показано в документации по продукту и как указано в других ответах здесь, очень просто полностью настроить FtpServer программным способом.
Но я полагаю, что если первоначальный спрашивающий действительно хотел это сделать, наверняка многие люди осознают административные преимущества, связанные с декларативной настройкой FtpServer с XML во встроенном приложении. Вот как это сделать:
Да, вам нужно использовать Spring, чтобы использовать XML-конфигурации для FtpServer, но вам не нужно ничего узнавать о Spring.
Просто используйте этот единственный оператор для создания экземпляра вашего FTP-сервера, настроенного с указанным XML-файлом:
FtpServer server = new FileSystemXmlApplicationContext("config/ftpd.xml").getBean("fServer", FtpServer.class);
(И вам, очевидно, понадобится .start () потом ... вот и все).
Существуют и другие способы загрузки bean-компонента из файла bean-компонента, но это просто и удобно, и вам достаточно легко изменить идентификатор элемента, чтобы он соответствовал указанному имени bean-компонента (fServer в строке выше).
Путь к файлу XML зависит от того, откуда вызывается JVM («java»), но вместо этого вы можете использовать абсолютный путь.
Вы также можете загрузить файл XML как ресурс CLASSPATH, а не из файловой системы. У этого есть свои преимущества и недостатки, и я не буду тратить время на их обсуждение и на то, как это сделать.
Единственное, что нужно знать, это то, что вам потребуется пара файлов jar Spring в вашей компиляции CLASSPATH и много файлов jar Spring в вашей CLASSPATH во время выполнения. Все эти банки легко доступны в центральном хранилище Maven, и все вместе они имеют размер менее 3 МБ. Вот зависимости jar в формате Ivy:
<dependency name="mina-core" org="org.apache.mina" rev="2.0.4" conf="runtime"/>
<dependency name="slf4j-api" org="org.slf4j" rev="1.6.3" conf="runtime"/>
<dependency name="jcl-over-slf4j" org="org.slf4j" rev="1.6.3" conf="runtime"/>
<dependency name="slf4j-jdk14" org="org.slf4j" rev="1.6.3" conf="runtime"/>
<dependency name="ftplet-api" org="org.apache.ftpserver" rev="1.0.6" conf="runtime"/>
<dependency name="ftpserver-core" org="org.apache.ftpserver" rev="1.0.6"/>
<dependency name="spring-context" org="org.springframework"
rev="3.0.6.RELEASE"/>
<dependency name="spring-core" org="org.springframework"
rev="3.0.6.RELEASE"/>
<dependency name="spring-beans" org="org.springframework"
rev="3.0.6.RELEASE"/>
<dependency name="spring-asm" org="org.springframework" conf="runtime"
rev="3.0.6.RELEASE"/>
<dependency name="spring-expression" org="org.springframework" conf="runtime"
rev="3.0.6.RELEASE"/>