java Mina sftp_java – 使用Apache Mina作为模拟/内存SFTP服务器进行单元测试
我正在解决如何使用Apache Mina的麻烦.他们的文档对我无能为力的大脑来说有一点不足.我已经看到了有用的起始代码
Java SFTP server library?
我无法想像的是如何使用它.我想设置一个检查我的sftp代码的单元测试,使用Mina作为一种模拟服务器,即能够写一个单元测试,如:
@Before
public void beforeTestSetup() {
sshd = SshServer.setUpDefaultServer();
sshd.setPort(22);
sshd.setKeyPairProvider(new SimpleGeneratorHostKeyProvider("hostkey.ser"));
List> userAuthFactories = new ArrayList>();
userAuthFactories.add(new UserAuthNone.Factory());
sshd.setUserAuthFactories(userAuthFactories);
sshd.setPublickeyAuthenticator(new PublickeyAuthenticator());
sshd.setCommandFactory(new ScpCommandFactory());
List> namedFactoryList = new ArrayList>();
namedFactoryList.add(new SftpSubsystem.Factory());
sshd.setSubsystemFactories(namedFactoryList);
try {
sshd.start();
} catch (Exception e) {
e.printStackTrace();
}
}
@Test
public void testGetFile() {
}
问题是在testGetFile()中放入什么.
我一直在浏览测试代码,想知道上面是否需要更多配置来指定根目录,用户名和身份验证密钥文件名.那么我需要使用客户端或我自己的SFTP api代码来获取和拉取文件?
我相信这是一个很好的API,只是没有很多的指导,任何人都可以帮忙?
这是我做的(JUnit):
@Test
public void testPutAndGetFile() throws JSchException,SftpException,IOException
{
JSch jsch = new JSch();
Hashtable config = new Hashtable();
config.put("StrictHostKeyChecking","no");
JSch.setConfig(config);
Session session = jsch.getSession( "remote-username","localhost",PORT);
session.setPassword("remote-password");
session.connect();
Channel channel = session.openChannel( "sftp" );
channel.connect();
ChannelSftp sftpChannel = (ChannelSftp) channel;
final String testFileContents = "some file contents";
String uploadedFileName = "uploadFile";
sftpChannel.put(new ByteArrayInputStream(testFileContents.getBytes()),uploadedFileName);
String downloadedFileName = "downLoadFile";
sftpChannel.get(uploadedFileName,downloadedFileName);
File downloadedFile = new File(downloadedFileName);
Assert.assertTrue(downloadedFile.exists());
String fileData = getFileContents(downloadedFile);
Assert.assertEquals(testFileContents,fileData);
if (sftpChannel.isConnected()) {
sftpChannel.exit();
System.out.println("Disconnected channel");
}
if (session.isConnected()) {
session.disconnect();
System.out.println("Disconnected session");
}
}
private String getFileContents(File downloadedFile)
throws FileNotFoundException,IOException
{
StringBuffer fileData = new StringBuffer();
BufferedReader reader = new BufferedReader(new FileReader(downloadedFile));
try {
char[] buf = new char[1024];
for(int numRead = 0; (numRead = reader.read(buf)) != -1; buf = new char[1024]) {
fileData.append(String.valueOf(buf,numRead));
}
} finally {
reader.close();
}
return fileData.toString();
}
java Mina sftp_java – 使用Apache Mina作为模拟/内存SFTP服务器进行单元测试相关推荐
- apache mina 2
1 介绍 Apache MINA 是一个网络应用程序框架,它对Java中的socket和NIO进行了有效和清晰的封装,方便开发人员开发TCP/UDP程序,从而抛开在使用原始的socket时需要考虑的各 ...
- Apache MINA框架快速入门
一.为什么要用MINA框架 Apache Mina是一个网络通信应用框架,是基于TCP/IP.UDP/IP协议栈的通信框架,Mina 的异步IO 默认使用的是JAVA NIO 作为底层支持,具有高性能 ...
- Apache Mina入门案例
Apache Mina是一个能够帮助用户开发高性能和高伸缩性网络应用程序的框架.它通过Java nio技术基于TCP/IP和UDP/IP协议提供了抽象的.事件驱动的.异步的API.我们可以使用mina ...
- android mina分析,Android与Mina整合
最近想在自己做的安卓手机应用中加入即时聊天功能,于是想到了用Mina来实现,也是由于自己想着偷懒,借用了官方的example中chat的相关代码,经过一番改造,很快就能在java环境中正常运行了.确认 ...
- 搭建Apache Mina框架并实现Server与Client端的简单消息传递
http://www.himigame.com/apache-mina/831.html :(作者新浪微博: @李华明Himi ) 转载自[黑米GameDev街区] 原文链接: http://www. ...
- Apache MiNa 2 学习笔记
http://blog.csdn.net/cgwcgw_/article/details/18402769 http://download.csdn.net/detail/xiaozhu_1986/2 ...
- Apache Mina Demo
Mina主要是作为服务器端底层框架来实现数据处理,它的实现很简单,如下例所示: view plaincopy to clipboardprint? package com.gftech.mytool. ...
- 【Apache Mina2.0开发之一】搭建Apache Mina框架并实现Server与Client端消息传递
Hibernate系列学习阶段到此结束了,那么紧接着进入Apache Mina的开发学习,很多童鞋在微薄和QQ中疑问Himi为什么突然脱离游戏开发了,嘿嘿,其实可能更多的童鞋已经看出来了,Himi在偏 ...
- 【Apache Mina2.0开发之一】搭建Apache Mina框架并实现Server与Client端的简单消息传递!
Hibernate系列学习阶段到此结束了,那么紧接着进入Apache Mina的开发学习,很多童鞋在微薄和QQ中疑问Himi为什么突然脱离游戏开发了,嘿嘿,其实可能更多的童鞋已经看出来了,Himi在偏 ...
最新文章
- Android中Canvas绘图之Shader使用图文详解
- 另我模糊的URL 重写
- 无埋点数据收集和adb monkey测试屏蔽通知栏
- 马云最怕的事还是来了,央行对借呗动真格!
- 为什么Java不允许super.super.method();
- 基于keepalived 实现VIP转移,lvs,nginx的高可用
- 【转】%~dp0是什么意思
- 减治法解决俄式乘法问题(JAVA)
- 纷享逍客宣布完成E+轮融资 长山兴资本领投
- 小程序 后台返回的对象数组(每个数组添加一个新的属性值)
- 灵魂拷问!java数据结构面试题
- 通过xmlhttp实现-报告归档
- 京东大数据技术白皮书 附下载地址
- 2021 年产品沉思录精选集 PDF 下载及卷首语合集:像农夫一样耕耘和等待
- 在书的侧面(包括书口、书顶<上切口>、书根<下切口>)写的字如何去除
- SPFA与迪杰斯特拉
- 打开 Windows 10 默认共享
- 二重积分的复化Simpson方法
- SMAA算法详解 - SMAASearchYUp(Down)
- 团团圆圆过元宵!粉丝福利!包邮送一个新款苹果iPad
热门文章
- C++中结构体、联合体、枚举的区别
- xmodmap: unable to open display '' Error: Couldn't connect to XServer passing null display
- 神经网络基础:七种网络单元,四种层连接方式
- SVM的升维解决线性不可分
- 模板匹配(Match Template)
- 通过js引用外部脚本(方便直接在浏览器上调试抓取代码)
- c# pictureBox1.Image的获得图片路径的三种方法 winform
- javaweb学习总结(十九)——JSP标签
- Oracle触发器的语法详解
- 我是一名黑客我也是一名程序员