Как настроить Apache FtpServer? - PullRequest
       9

Как настроить Apache FtpServer?

2 голосов
/ 28 ноября 2009

Я нашел это очень простое описание в документе Apache FtpServer:

Интеграция с Spring Framework

Apache FtpServer использует Spring Framework для реализации конфигурации. Это также означает, что мы получаем дополнительное преимущество полной интеграции с обычной конфигурацией Spring XML. Например, вы можете встраивать элемент «сервер» где угодно, в конфигурацию Spring, и с помощью FtpServer на пути к классам Spring подключит сервер для вас.

Ничего другого о:

  1. Куда мне положить этот файл конфигурации?
  2. Каким должно быть имя файла?
  3. Как приложение может найти этот файл?

Нужно ли изучать Spring Configure Framework, чтобы узнать все об этом?

Ответы [ 5 ]

4 голосов
/ 28 ноября 2009

Там есть документация об этом, и найти ее было не сложно. Это на этой странице:

http://mina.apache.org/ftpserver-project/running_ftpserver_standalone.html

Оказывается, вы указываете файл конфигурации XML просто в командной строке при запуске сервера:

bin/ftpd.sh res/conf/ftpd-typical.xml

Для Windows:

bin/ftpd.bat res/conf/ftpd-typical.xml

Я просто попробовал это для себя: я скачал сервер, запустил команду и ... он начал обслуживать.

3 голосов
/ 27 октября 2011

Не могу сказать, хотел ли исходный вопросник настроить 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"/>
1 голос
/ 28 ноября 2009

Вы спрашивали о встроенном FTP-сервере в другой вопрос . Есть инструкции для встроенного использования. При встраивании вам не нужны никакие файлы конфигурации, вы можете использовать API, чтобы предоставить серверу всю необходимую информацию.

Вам не нужно знать конфигурацию Spring (если вы не используете Spring Framework в другом месте вашего проекта). Библиотека ftp должна автоматически позаботиться о конфигурации.

0 голосов
/ 03 мая 2012

Используя Встраивая FtpServer за 5 минут , например, вы можете подключить пружинные бобы так:

<bean id="ftpServer" factory-bean="ftpServerFactory" factory-method="createServer" init-method="start" />

<bean id="ftpServerFactory" class="org.apache.ftpserver.FtpServerFactory">
    <property name="userManager">
        <bean id="ftpUsers" factory-bean="ftpUsersFactory" factory-method="createUserManager" />
    </property>
</bean>

<bean id="ftpUsersFactory" class="org.apache.ftpserver.usermanager.PropertiesUserManagerFactory">
    <property name="file" value="users.properties" />
</bean>

Он запустит FTP-сервер на порту 21, используя конфигурацию пользователя из файла свойств (я использовал тот, который указан в выпуске )

0 голосов
/ 28 ноября 2009

Механизм конфигурации Spring на удивление прост, но гибок - по сути, это просто XML-файл, определяющий набор объектов и их взаимосвязи (путем указания параметров конструктора, вызова сеттеров и т. Д., Как вы это делаете из кода).

Одним из ключевых моментов является то, что он связывает воедино объекты, которые в остальном совершенно нормальные (без «весенней магии»). Таким образом, вы можете взять компоненты Spring и использовать их независимо от механизма конфигурации - это удобно для тестирования и повторного использования в других средах, или взять внешние компоненты и использовать их в проекте Spring без изменений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...