`
simen_net
  • 浏览: 307116 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Apache FTPServer 集成到Spring WEB项目中

阅读更多

Apache FTPServer好东西,可以集成到自己的WEB项目中,单独用也非常不错。大家有兴趣可以研究一下,测试了一下和Spring WEB项目结合。留下代码如下:

 

web.xml

  <listener>
    <listener-class>com.strong.utils.ftpservice.FtpServerListener</listener-class>
  </listener>
  <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value> 
      /WEB-INF/classes/com/strong/spring/applicationFTP.xml
    </param-value>
  </context-param>

 

FtpServerListener.java

package com.strong.utils.ftpservice;

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;

import org.apache.ftpserver.FtpServer;
import org.apache.ftpserver.impl.DefaultFtpServer;
import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;

public class FtpServerListener implements ServletContextListener {

  public void contextDestroyed(ServletContextEvent sce) {
    System.out.println("Stopping FtpServer");
    DefaultFtpServer server = (DefaultFtpServer) sce.getServletContext().getAttribute(FtpConstants.FTPSERVER_CONTEXT_NAME);
    if (server != null) {
      server.stop();
      sce.getServletContext().removeAttribute("FTPSERVER_CONTEXT_NAME");
      System.out.println("FtpServer stopped");
    } else {
      System.out.println("No running FtpServer found");
    }
  }

  public void contextInitialized(ServletContextEvent sce) {
    System.out.println("Starting FtpServer");
    WebApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(sce.getServletContext());
    DefaultFtpServer server = (DefaultFtpServer) ctx.getBean("StrongFTP");
    sce.getServletContext().setAttribute("FTPSERVER_CONTEXT_NAME", server);
    try {
      server.start();
      System.out.println("FtpServer started");
    } catch (Exception e) {
      throw new RuntimeException("Failed to start FtpServer", e);
    }
  }
}

 

applicationFTP.xml

<server xmlns="http://mina.apache.org/ftpserver/spring/v1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://mina.apache.org/ftpserver/spring/v1 http://mina.apache.org/ftpserver/ftpserver-1.0.xsd"
  id="StrongFTP" max-logins="500" anon-enabled="false" max-anon-logins="123" max-login-failures="124" login-failure-delay="125">
  <listeners>
    <nio-listener name="default" port="2222" implicit-ssl="false" idle-timeout="60" local-address="127.0.0.1" />
  </listeners>
  <file-user-manager file="users.properties" encrypt-passwords="true" />
</server>

 具体参数就不解释了,大家看文档。大概的做法是做一个ServletContextListener,tomcat启动时开始ftp服务器,结束时停止ftp服务器。

分享到:
评论
10 楼 simen_net 2011-04-14  
yoyo837 写道
请问LZ,单独用eclipse开发apache ftpserver怎么弄啊? apache ftpserver 一般都弄到web程序里面吗?  有什么区别没?

单独跑FTPServer最简单了,官方的文档就是这样弄的,还可以开机自启动。
9 楼 simen_net 2011-04-14  
kennethlin 写道
applicationContext.xml这个用server 元素不会报错?
我用spring 1.2版本,难道用2.5的就不会报错?

这个我还真没注意,反正就跑起来了,应该是命名空间的问题把
8 楼 simen_net 2011-04-14  
yoyo837 写道
FtpConstants 是哪里来的?

FtpConstants就是同目录下的一个常量文件而已,自己写就可以了
7 楼 kennethlin 2011-04-11  
applicationContext.xml这个用server 元素不会报错?
我用spring 1.2版本,难道用2.5的就不会报错?
6 楼 yoyo837 2011-04-08  
FtpConstants 是哪里来的?
5 楼 yoyo837 2011-04-08  
请问LZ,单独用eclipse开发apache ftpserver怎么弄啊? apache ftpserver 一般都弄到web程序里面吗?  有什么区别没?
4 楼 simen_net 2010-11-15  
apache FtpServer 是mina的一个应用,和tomcat这些没有冲突。只要你给他的内存够大,不会影响到WEB服务器,当然如果因为服务器的性能不能满足,那肯定会影响WEB服务。

总的来说,你把这个集成到WEB应用中,和在同一台服务器上单独跑Apache FTPServer和WEB服务是一样的。

至少,我在实际的测试过程中没有发现,内部千兆网络中上传速度曾经达到过了100M+的峰值```````,是实际的文件上传速度不是bps哦
3 楼 wuliupo 2010-10-21  
一直找这方面的资料,谢谢 LZ 指路
不知道开了 Ftp 服务以后,java web 服务会不会很卡?
2 楼 lshoo 2010-10-20  
好东西,看不太明白,慢慢领悟!
1 楼 zhonggeneral 2010-10-20  
学习了,值得收藏。

相关推荐

    Apache FTPServer的配置使用

    Apache FtpServer 可以与 Spring 框架集成,以便在 Web 应用程序中使用 FTP 服务。 ### 基于 commons-net 的文件上传下载 commons-net 库提供了文件上传下载的功能,可以与 Apache FtpServer 集成,以便实现文件...

    CXF跟Spring集成的 WebServer实例

    本文将深入探讨如何将CXF与Spring进行集成,以构建一个基于WebServer的实例。 首先,让我们了解CXF的基本概念。CXF允许开发者使用Java编程语言来实现SOAP和RESTful Web服务。它支持多种协议,如HTTP、JMS和FTP,...

    Apache Mina Server 2.0 抢鲜体验

    6. **工具集成**:作为标签中的"工具",Apache Mina可以与其他开源工具如Spring、Hibernate等良好集成,为开发者提供更强大的功能和更便捷的开发环境。 7. **源码分析**:由于标签中提到了“源码”,因此,对于有志...

    基于Spring的web框架使用说明

    - **实现方式**:基于Apache FTPServer组件实现。 - **配置**:通过`user.properties`文件进行配置。 #### 常用工具类 - **Groovy**: - Groovy是一种运行于Java平台上的动态编程语言,兼容Java语法。 - `...

    SSI+Mina2(Struts2+Spring4+Mybatis3+Mina2)集成发布就可运行

    标题中的"SSI+Mina2(Struts2+Spring4+Mybatis3+Mina2)集成发布就可运行"指的是一个基于Java的Web应用程序开发框架的整合,它结合了多种技术来构建高效、灵活和可扩展的网络应用。这个集成方案主要包括以下组件: 1....

    Apache与Weblogic整合说明

    由于 Spring 框架使用 log4j 进行日志管理,因此需要在 web.xml 中指定 log4j 配置文件的位置,创建监听器类以初始化 log4j 配置。这使得应用程序可以按照配置文件的规则记录日志,方便监控和调试。 通过以上步骤...

    apache-cxf-2.1.3.zip

    这个"apache-cxf-2.1.3.zip"压缩包包含了该框架的版本2.1.3的所有组件和资源,使得开发者可以便捷地在他们的项目中集成和使用CXF。 CXF的核心功能包括: 1. **SOAP与RESTful服务支持**:CXF允许开发人员创建和消费...

    springmvc上传文件到FTP

    通过以上步骤,我们就实现了Spring MVC应用中上传文件到FTP服务器的功能。用户可以通过Web界面选择文件并提交,后台服务则会将文件安全地传输到FTP服务器。这个功能在许多场景下都非常实用,比如文件共享、备份或...

    java web 淘宝商城

    在Java Web中,常见的MVC框架有Spring MVC和Struts2。 三、Spring框架 Spring是Java企业级应用开发的核心框架,它提供了依赖注入(Dependency Injection,DI)和面向切面编程(Aspect-Oriented Programming,AOP)...

    apache-camel-2.7.0-src.tar.gz

    为了使用Apache Camel 2.7.0,开发者需要熟悉Java编程和Maven或Gradle等构建工具,以便编译源代码并将其集成到自己的项目中。同时,理解EIPs和Camel的组件体系将有助于构建高效的数据集成解决方案。

    springboot+FTP服务器实现远端文件上传

    首先,我们需要在Spring Boot项目中引入FTP相关的依赖。在`pom.xml`文件中添加Apache Commons Net库,它是Java中实现FTP协议的常用库: ```xml &lt;groupId&gt;commons-net&lt;/groupId&gt; &lt;artifactId&gt;commons-...

    apache cxf 工程

    这个"apache cxf 工程"可能是一个包含CXF项目示例或配置的压缩包,尽管描述中没有具体信息,我们可以从CXF的基本概念、用途、核心功能等方面进行深入探讨。 Apache CXF是一个流行的开源工具,它允许开发者创建、...

    servicemix-bundles:Apache ServiceMix捆绑包的镜像

    Apache ServiceMix是一个开源的企业服务总线(ESB)和应用服务器,它基于OSGi(开放服务网关规范)框架,提供了集成不同系统和服务的能力。这个项目的主要目标是提供一个灵活、可扩展且易于管理的平台,用于实现企业...

    ssh文件上传下载

    Tomcat是Apache软件基金会的一个开源项目,是一个符合Java Servlet和JavaServer Pages(JSP)规范的Web应用服务器。在此描述中,提到能用Tomcat运行,说明项目是一个基于Java的Web应用,可能使用了Spring、Struts和...

    利用Camel调用远程对象

    在IT行业中,集成和通信是系统开发中的重要环节。Apache Camel 是一个强大的开源框架,它提供了多种方式来连接和交互不同的系统、服务和协议。本文将深入探讨如何利用Camel调用远程对象,以实现系统间的高效通信。 ...

    上传jsp demo

    【标题】"上传jsp demo" 涉及到的核心知识点主要围绕着JSP(Java Server Pages)技术在文件管理系统中的应用。JSP是Java的一种动态网页技术,它允许开发人员在HTML页面中嵌入Java代码,实现服务器端的动态内容生成。...

    java网上oa办公系统原码学习资料分享c

    6. **安全机制**:如Spring Security或Apache Shiro,用于身份验证和授权,保护系统资源不被非法访问。 7. **数据建模**:关系型数据库如MySQL、Oracle或SQL Server,可能使用ER图进行数据模型设计,确保数据的一致...

    基于J2EE框架的个人博客系统项目毕业设计论文(源码和论文)

    对Web技术的支持,使用户能够很容易地将数据库中的数据发布到Web页面上。  7.SQL Server提供数据仓库功能,这个功能只在Oracle和其他更昂贵的DBMS中才有。  SQL Server 2000与以前版本相比较,又具有以下新特性...

    企业办公自动化系统.zip

    6. 安全管理:实现用户认证与授权,如登录验证、权限控制,通常采用Spring Security或Apache Shiro等框架。 7. 邮件服务:自动发送通知邮件,可能集成JavaMail API来实现。 8. 文件管理:支持文档上传、下载、版本...

    服装信息网站 整站源码

    1. **Eclipse IDE**:Eclipse是一款广泛使用的开源集成开发环境(IDE),尤其在Java开发中非常流行。它支持多种编程语言,包括Java、Python、C++等,提供了代码编辑、调试、构建和部署等多种功能。在本项目中,...

Global site tag (gtag.js) - Google Analytics