gpt4 book ai didi

java - 如何在服务类中访问spring SFTP远程InputStream

转载 作者:行者123 更新时间:2023-12-01 10:14:45 25 4
gpt4 key购买 nike

我正在寻找一种使用服务激活器将InputStream传递到服务类方法的方法,经过以下配置测试,似乎没有调用服务激活器。有什么地方做错了吗?

<bean id="sftpSessionFactory" ... />

<int:channel id="inboundGetStream">
<int:queue />
</int:channel>

<int-sftp:outbound-gateway session-factory="sftpSessionFactory"
request-channel="inboundGetStream"
command="get"
command-options="-stream"
expression="payload"
remote-directory="ftpTarget"
reply-channel="streamHandler" />

<int:service-activator input-channel="inboundGetStream" ref="streamHandler" method="handleMessage"/>

在服务类中创建了带有InputStream参数的方法:

@Service("streamHandler")
public class StreamHandler {

public void handleMessage(InputStream file, @Headers['file_remoteSession']DefaultSftpSessionFactory session) throws FileNotFoundException, IOException{
log.debug("############# handleMessage(file) ###########");
log.debug(IOUtils.toString(new FileInputStream(file)));
session.close();
}
}

最佳答案

删除链条 - <file:splitter/>从 inputStream 读取文件并将每一行作为 Message<String> 发出.

由于您想自己使用 inputStream,因此您不希望这样。那么您的服务方法是正确的。

只需将回复 channel 更改为 outboundGetStream并将服务激活器的输入 channel 更改为该 channel 。

关于java - 如何在服务类中访问spring SFTP远程InputStream,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35965975/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com