Camel FTP中文目录解决办法
来源:互联网 发布:淘宝天猫lee鼎汉店真假 编辑:程序博客网 时间:2024/05/30 23:01
p; 在Camel中使用FTP只需要简单的DSL配置就可以了,把对应的jar放到classpath即可,但是在使用中遇到了FTP服务器上中文目录的问题,如果FTP服务器上的目录是中文的,那么FTP执行什么信息都没有,也没有错误,也没有下载下来。搞得我有些莫名其妙,不知道到底是怎么回事。
后来开始跟踪Camel源代码进行debug,终于发现在org.apache.camel.component.file.remote.FtpOperations类的doChangeDirectory方法中,无法进入到对应的中文目录。
1 private void doChangeDirectory(String path) { 2 if (path == null || ".".equals(path) || ObjectHelper.isEmpty(path)) { 3 return; 4 } 5 6 log.trace("Changing directory: {}", path); 7 boolean success; 8 try { 9 if ("..".equals(path)) {10 changeToParentDirectory();11 success = true;12 } else {13 success = client.changeWorkingDirectory(path);14 }15 } catch (IOException e) {16 throw new GenericFileOperationFailedException(client.getReplyCode(), client.getReplyString(), e.getMessage(), e);17 }18 if (!success) {19 throw new GenericFileOperationFailedException(client.getReplyCode(), client.getReplyString(), "Cannot change directory to: " + path);20 }21 }
关键就在第13行client.changeWorkingDirectory的方法,而这个client是用的org.apache.commons.net.ftp.FTPClient,上网查找了一下,发现很多人都遇到了FTPClient不能进入中文目录的问题。
尝试了三种方法:
第一种改变编码,不行,还是不能进入目录。
uri = new String(uri.getBytes("gb2312"),"iso-8859-1");
第二种方法,设置表头的编码,还是不行。
.process(new Processor() { @Override public void process(Exchange exchange) throws Exception { exchange.setProperty(Exchange.CHARSET_NAME, "gb2312"); } })
第三种方法,设置FTPClient的编码,这个终于OK了,关键就在最后的红字,ftpClient.controlEncoding=gb2312
String uri = "ftp://username@10.10.XX4.122/中文目录?password=xxxx&ftpClient.controlEncoding=gb2312";
- Camel FTP中文目录解决办法
- IOS开发FTP中文目录和文件名乱码解决办法
- IIS中文目录无法访问解决办法
- commons.net.ftp的中文目录问题
- Apache Camel框架之FTP路由
- Apache Camel框架之FTP路由
- Apache Camel框架之FTP路由
- Apache Camel框架之FTP路由
- Apache Camel之FTP组件学习
- IIS5不支持中文目录的解决办法
- Apache 中文目录浏览乱码解决办法
- Apache 中文目录浏览乱码解决办法
- FileZilla读取目录列表失败的解决办法 ftp
- sun.net.ftp.FtpClient 中文目录乱码问题解决
- 解决Firefox访问FTP中文目录乱码的方法
- MFC 遍历FTP服务器目录中文乱码问题
- java-ftp 上传、删除文件(支持中文目录、文件名)
- Java-ftp支持中文目录、文件名的 上传、删除文件
- 士兵排队---统计每个士兵看到后排士兵的总数
- csdn学习半个月
- 说说项目的一些现状,也谈谈一些发展的问题
- 栈(stack)简介
- C#:数据类型转换
- Camel FTP中文目录解决办法
- 引用第三方库出现的java java.lang.NoClassDefFoundError问题
- 上传图片之上传前判断文件格式与大小
- 一个存储过程中的小问题
- MySQL & Entity Framework Code First 数据表大小写的问题
- Android的touchEvent的消费过程
- [原]用GitBlit 和 VS GitSourceControlProvider 搭建基于 Http(s) 的 Git 工作平台
- JQuery常用标签
- lucenc代码阅读指南、测试范例