首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Apache SftpSubsystem.Factory()

Apache SftpSubsystem.Factory()
EN

Stack Overflow用户
提问于 2017-05-08 08:22:19
回答 2查看 2.9K关注 0票数 7

我正在尝试使用Apache地雷SSHD v1.2.0设置一个简单的SFTP服务器。

我看过网上的几个例子,比如这里这里这里

但是,它们所有的都有相同的行,我无法让NetBeans来解决这个问题。NetBeans告诉我,它在SftpSubsystem中找不到Factory。这条线看上去如下:

代码语言:javascript
复制
sftpServer.setSubsystemFactories (
    Arrays. <NamedFactory <Command >> asList (new SftpSubsystem.Factory ()));

我的main看起来如下所示:

代码语言:javascript
复制
SshServer sftpServer = SshServer.setUpDefaultServer ();
sftpServer.setPort (PORT);
sftpServer.setKeyPairProvider (new SimpleGeneratorHostKeyProvider (new File("hostkey.ser")));
sftpServer.setSubsystemFactories (
     Arrays. <NamedFactory <Command >> asList (new SftpSubsystem.Factory ()));
sftpServer.setPasswordAuthenticator (new PasswordAuthenticator () {
    @Override
    public boolean authenticate (String username, String password, ServerSession session) {
       return true;
    }
});
sftpServer.start ();
while(true);

我遗漏了什么?我只想连接到一个虚拟的SFTP服务器,列出一些目录并上传一两个文件。问题是,我想从现有的java应用程序中执行此操作。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-05-08 08:59:43

在Apache的最新版本中,它是SftpSubsystemFactory

代码语言:javascript
复制
sftpServer.setSubsystemFactories(
    Arrays.<NamedFactory<Command>>asList(new SftpSubsystemFactory()));
票数 12
EN

Stack Overflow用户

发布于 2021-05-23 10:49:48

我使用的是2.6.0版本,现在您不需要输入类型了。你可以简单地说:

代码语言:javascript
复制
sftpServer.setSubsystemFactories(Arrays.asList(new SftpSubsystemFactory()));
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43842937

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档