代码之家  ›  专栏  ›  技术社区  ›  faceclean

如何配置ApacheFTPServer?

  •  2
  • faceclean  · 技术社区  · 16 年前

    我在Apache FtpServer的文档中发现了以下非常简单的描述:

    ApacheFTPServer使用Spring框架来实现配置。这也意味着我们可以从与常规SpringXML配置的完全集成中获得额外的好处。例如,您可以在Spring配置中任意位置嵌入“server”元素,并且通过类路径上的FtpServer,Spring将为您连接服务器。

    1. 文件名应该是什么?

    我是否需要学习Spring的配置框架来了解它?

    5 回复  |  直到 6 年前
        1
  •  5
  •   stymex Carl Smotricz    13 年前

    那里 是

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

    事实证明,在启动服务器时,您只需在命令行上指定XML配置文件:

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

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

    我只是自己尝试了一下:我下载了服务器,启动了命令,然后。。。它开始上菜了。

        2
  •  3
  •   Blaine    14 年前

    受通缉的 通过XML配置FtpServer,或者他/她不知道这是否是嵌入的要求。

    正如产品文档中清楚显示的,以及这里的其他答案所指出的,完全以编程方式配置FtpServer是很简单的。

    但我认为,如果最初的提问者真的想这样做,那么肯定会有很多人认识到在嵌入式应用程序中声明性地使用XML配置FtpServer的管理优势。以下是如何做到这一点:

    是的,您确实需要使用Spring来为FtpServer使用XML配置,但您不需要了解Spring的任何内容。

    FtpServer server = new FileSystemXmlApplicationContext("config/ftpd.xml").getBean("fServer", FtpServer.class);
    

    (很明显,您需要在之后启动(),就是这样)。

    XML文件路径与调用JVM(“java”)的位置有关,但可以使用绝对路径。

    要知道的另一件事是,在编译类路径中需要几个springjar文件,在运行时类路径中需要许多springjar文件。所有这些JAR都可以在Maven中央存储库中随时获得,它们的总容量都在3MB以下。以下是Ivy格式的jar依赖项:

    
    <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"/>
    
        3
  •  2
  •   Community Mohan Dere    9 年前

    你问的是关于嵌入式FTP服务器的问题 another question instructions

    您不需要知道Spring配置(除非您在项目的其他地方使用Spring框架)。ftp库应该自动进行配置。

        4
  •  0
  •   David    12 年前

    使用 Embedding FtpServer in 5 minutes 例如,您可以像这样连接SpringBean:

    <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>
    

    它将使用属性文件中的用户配置在端口21上启动FTP服务器(我使用中提供的配置) the release )

        5
  •  -1
  •   SimonJ    16 年前

    Spring的配置机制出人意料地简单但灵活——本质上只是一个定义一组对象及其关系的XML文件(通过指定构造函数参数、调用setter等等——就像您在代码中所做的那样)。

    一个关键点是,它将完全正常的对象连接在一起(没有“弹簧魔法”)。因此,您可以获取Spring组件并独立于配置机制使用它们——这对于在其他框架中测试和重用非常方便,或者获取外部组件并在Spring项目中使用它们而不做任何更改。