0 0

FTP apache FTPClient组件 连接池5

各位好,我做了一个apache FTPClient的连接池,目前碰到一个问题:
1.从池中取FTPClient对象之前,如何判断该对象是可用的?就好像刚刚new 一个FTPClient对象一样?

使用完的FTPClient对象会放到池中,由于JVM的垃圾回收或者FTP服务器的原因,FTPClient对象会失效。我测试了一下,休眠一段时间后从池中取FTPClient对象,isConnected()  isAvaliable()两个方法都返回true,但是下载还是失败.


对FTP不是很了解,期望给予支持!
2013年11月18日 09:14

2个答案 按时间排序 按投票排序

0 0

采纳的答案

ftp 链接有超时设置。
因此要维持链接的话需要发送nop指令。
再开一个线程,定时遍历池中链接,发送nop指令吧。

2013年11月20日 04:58
0 0

几年前使用过这个,是可以做池化处理的,但是需要注意:

FTPClient实际上是有状态的,因此在归还的时候需要做相应的处理(比如当前路径清空到根目录等),如果使用完了就直接放到对象池里面,应该会有问题;

FTPClient是不能多线程共享的,原因也是因为状态的特性。

如果不是因为状态清理的问题,需要具体的错误信息分析才能给出具体的结论。

2013年11月18日 11:07

相关推荐

    FTPClient连接池

    使用apache的commons-pool2 构建 FTPClient连接池 有FtpClientFactory、FtpClientPool、FtpConfig、FtpOperate 四个类组成 还有ftp连接池的一些配置参数信息在ftp.properties文件中 注释完整欢迎大家下载使用

    java ftpClient 连接池设计

    总之,Java FTPClient连接池设计是提高FTP操作性能的关键,它通过复用FTP连接,减少了系统开销,提高了服务的响应速度。通过理解连接池的工作原理和实现方式,开发者可以更好地设计和优化自己的FTP服务。

    springboot集成ftp连接池工具

    在Spring Boot项目中,可以使用Apache Commons Net库来实现FTP功能,并使用Apache Commons Pool2库来实现FTP连接池。在`pom.xml`文件中添加如下依赖: ```xml <groupId>org.springframework.boot <artifactId>...

    Spring Boot整合FTPClient线程池的实现示例

    在 Spring Boot 项目中,我们可以使用 Apache 的 common-pool 包来协助我们开发连接池。具体来说,我们需要实现 common-pool 包中的 ObjectPool 和 PoolableObjectFactory 两个接口。 首先,我们需要在 pom 文件中...

    SpringBoot2.2+commons-pool2实现多Ftp连接池完整项目,开箱即用,经过长期生产使用稳定可靠

    使用JDK1.8、SpringBoot2.2.10.RELEASE、lombok1.18.8、guava23.0、hutool5.3.10、commons-pool2 2.7.0、tika1.22等实现多Ftp连接池实现,通过守护线程实现连接池内连接可用性校验,配置最大、最小连接个数防止Ftp...

    Java FTPClient连接池的实现

    Java FTPClient连接池的实现 在这篇文章中,我们主要介绍了Java FTPClient连接池的实现。首先,我们需要了解为什么需要使用连接池。创建和销毁FTPClient对象是非常耗费资源的操作,因此,我们可以使用连接池来复用...

    FtpClient写的java FTP工具

    在这个工具中,可能会封装上述的基本FTP操作,并可能提供更友好的API,如异步处理、错误处理、连接池管理等功能,以简化开发者的使用。 总结一下,`FtpClient`是Java中实现FTP功能的重要工具,它提供了丰富的接口来...

    FTPCLIENT_commons-net-1.4.1_jakarta-oro-2.0.8

    同时,为了处理异常和优化性能,还会考虑使用连接池、重试机制、断点续传等功能。 总的来说,通过结合`commons-net-1.4.1.jar`和`jakarta-oro-2.0.8.jar`这两个库,Java开发者可以构建出强大且灵活的FTP客户端应用...

    Java实现的FTP连接与数据浏览程序

    此外,考虑到FTP服务器可能有并发限制,我们需要管理好连接池,避免过多的并发连接导致服务器拒绝服务。 总的来说,Java实现的FTP连接与数据浏览程序涉及网络编程、文件操作、流处理、错误处理等多个方面的知识。...

    java远程telnet ftp和ssh连接的方法

    Java提供了内置的`java.net.FTPClient`类来处理FTP连接。以下是一个基本的FTP连接和文件上传示例: ```java import java.io.*; import org.apache.commons.net.ftp.*; public class FTPExample { public ...

    springmvc上传文件到FTP

    同时,你还可以优化`FtpUtils`类,例如使用FTP连接池来管理多个并发的上传任务。 最后,别忘了在Spring MVC的配置中,注册`FileUploadController`,以便处理器能正确处理文件上传请求。这通常在`@Configuration`类...

    JavaFtp实例,实现文件下载和读取

    此外,如果需要处理大量文件或频繁的FTP操作,考虑使用多线程和连接池以提高性能。 总之,Java FTP功能为我们提供了一种可靠的方式来与FTP服务器交互,无论是下载文件还是读取内容,都是业务系统中常见且实用的功能...

    java FTP上传文件,下载文件

    `FTPNet.java`可能包含了`FTPClient`的使用逻辑,而`FtpConManager.java`可能是一个管理FTP连接的类,用于控制连接池,确保资源的有效管理和复用。 `FTPNet.java`可能包含以下关键方法: - `connectToFtpServer...

    java ftp 上传 IIS 展示,代码+文档

    此外,为了提高性能,可以考虑使用线程池并发上传多个文件,或者使用连接池管理FTP连接。 总的来说,Java FTP上传IIS的实现涉及到Java网络编程、FTP协议、可能的第三方库使用,以及良好的异常管理和资源管理实践。...

    commons-net-ftp-2.0.rar

    8. **FTP会话管理**: 包括连接池、会话保持等高级功能,有助于提高性能和资源利用率。 9. **其他协议支持**: 除了FTP,Apache Commons Net还支持NNTP(新闻组传输协议)、SMTP(简单邮件传输协议)和其他网络协议,...

    ftp.rar_ftp_ftp java_java ftp 下载

    在IT行业中,FTP(File Transfer Protocol)是一种广泛用于在互联网上进行文件传输的标准协议。Java作为一种多用途且跨...在实际开发中,根据项目需求,可能还需要考虑更多细节,如连接池管理、线程安全、重试策略等。

    java 实现 ftp

    如果需要频繁进行FTP操作,可以考虑使用FTP会话池,提高性能和资源利用率。 总之,Java 实现 FTP涉及网络编程和文件操作,可以利用Java内置类或者Apache Commons Net库来实现。通过合理的编程设计,可以构建出高效...

    Java通过FTP服务器上传下载文件的方法

    同时,考虑使用连接池管理FTP连接,以提高性能和资源利用效率。此外,使用异步或多线程处理文件传输可以提高上传和下载的速度。 总之,Java通过Apache Commons Net库与FTP服务器交互,可以方便地实现文件的上传、...

    安卓ftp源码

    优化点可能包括重试机制、错误处理、连接池的使用等,以提高文件传输的稳定性和效率。 7. 整合到安卓应用: 将FTP功能整合进安卓应用,通常需要结合Android的异步处理机制,如AsyncTask或IntentService,避免因FTP...

    实用工具类

    例如,使用C3P0、DBCP或HikariCP等连接池,以及PreparedStatement来防止SQL注入。 5. **分页**:在处理大量数据时,分页查询是必要的。可以编写一个通用的分页工具类,接收SQL语句、参数、当前页和每页条数,返回...

Global site tag (gtag.js) - Google Analytics