我正在解决如何使用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服务器进行单元测试相关推荐

  1. apache mina 2

    1 介绍 Apache MINA 是一个网络应用程序框架,它对Java中的socket和NIO进行了有效和清晰的封装,方便开发人员开发TCP/UDP程序,从而抛开在使用原始的socket时需要考虑的各 ...

  2. Apache MINA框架快速入门

    一.为什么要用MINA框架 Apache Mina是一个网络通信应用框架,是基于TCP/IP.UDP/IP协议栈的通信框架,Mina 的异步IO 默认使用的是JAVA NIO 作为底层支持,具有高性能 ...

  3. Apache Mina入门案例

    Apache Mina是一个能够帮助用户开发高性能和高伸缩性网络应用程序的框架.它通过Java nio技术基于TCP/IP和UDP/IP协议提供了抽象的.事件驱动的.异步的API.我们可以使用mina ...

  4. android mina分析,Android与Mina整合

    最近想在自己做的安卓手机应用中加入即时聊天功能,于是想到了用Mina来实现,也是由于自己想着偷懒,借用了官方的example中chat的相关代码,经过一番改造,很快就能在java环境中正常运行了.确认 ...

  5. 搭建Apache Mina框架并实现Server与Client端的简单消息传递

    http://www.himigame.com/apache-mina/831.html :(作者新浪微博: @李华明Himi ) 转载自[黑米GameDev街区] 原文链接: http://www. ...

  6. Apache MiNa 2 学习笔记

    http://blog.csdn.net/cgwcgw_/article/details/18402769 http://download.csdn.net/detail/xiaozhu_1986/2 ...

  7. Apache Mina Demo

    Mina主要是作为服务器端底层框架来实现数据处理,它的实现很简单,如下例所示: view plaincopy to clipboardprint? package com.gftech.mytool. ...

  8. 【Apache Mina2.0开发之一】搭建Apache Mina框架并实现Server与Client端消息传递

    Hibernate系列学习阶段到此结束了,那么紧接着进入Apache Mina的开发学习,很多童鞋在微薄和QQ中疑问Himi为什么突然脱离游戏开发了,嘿嘿,其实可能更多的童鞋已经看出来了,Himi在偏 ...

  9. 【Apache Mina2.0开发之一】搭建Apache Mina框架并实现Server与Client端的简单消息传递!

    Hibernate系列学习阶段到此结束了,那么紧接着进入Apache Mina的开发学习,很多童鞋在微薄和QQ中疑问Himi为什么突然脱离游戏开发了,嘿嘿,其实可能更多的童鞋已经看出来了,Himi在偏 ...

最新文章

  1. Android中Canvas绘图之Shader使用图文详解
  2. 另我模糊的URL 重写
  3. 无埋点数据收集和adb monkey测试屏蔽通知栏
  4. 马云最怕的事还是来了,央行对借呗动真格!
  5. 为什么Java不允许super.super.method();
  6. 基于keepalived 实现VIP转移,lvs,nginx的高可用
  7. 【转】%~dp0是什么意思
  8. 减治法解决俄式乘法问题(JAVA)
  9. 纷享逍客宣布完成E+轮融资 长山兴资本领投
  10. 小程序 后台返回的对象数组(每个数组添加一个新的属性值)
  11. 灵魂拷问!java数据结构面试题
  12. 通过xmlhttp实现-报告归档
  13. 京东大数据技术白皮书 附下载地址
  14. 2021 年产品沉思录精选集 PDF 下载及卷首语合集:像农夫一样耕耘和等待
  15. 在书的侧面(包括书口、书顶<上切口>、书根<下切口>)写的字如何去除
  16. SPFA与迪杰斯特拉
  17. 打开 Windows 10 默认共享
  18. 二重积分的复化Simpson方法
  19. SMAA算法详解 - SMAASearchYUp(Down)
  20. 团团圆圆过元宵!粉丝福利!包邮送一个新款苹果iPad

热门文章

  1. C++中结构体、联合体、枚举的区别
  2. xmodmap: unable to open display '' Error: Couldn't connect to XServer passing null display
  3. 神经网络基础:七种网络单元,四种层连接方式
  4. SVM的升维解决线性不可分
  5. 模板匹配(Match Template)
  6. 通过js引用外部脚本(方便直接在浏览器上调试抓取代码)
  7. c# pictureBox1.Image的获得图片路径的三种方法 winform
  8. javaweb学习总结(十九)——JSP标签
  9. Oracle触发器的语法详解
  10. 我是一名黑客我也是一名程序员