Я пытаюсь загрузить несколько файлов с помощью SFTP Outbound Gateway.Мой Java-код выглядит так:
final DirectChannel reqWriteChannel = (DirectChannel) context.getBean("toWriteChannel");
final PollableChannel repWriteChannel = (PollableChannel) context.getBean("fromWriteChannel");
reqWriteChannel.send(MessageBuilder.withPayload(listOfFiles).build());
Message<?> input = repReadChannel.receive(1000);
System.out.println(input);
System.out.println(input.getPayload().toString());
И это XML Config:
<int:channel id="fromWriteChannel"><int:queue /></int:channel>
<int:channel id="toWriteChannel" />
<int-sftp:outbound-gateway
id="sftpWriteOnly"
session-factory="sftpSessionFactory"
request-channel="toWriteChannel"
reply-channel="fromWriteChannel"
command="mput"
expression="payload"
remote-directory="/test/mytest/"
remote-file-separator="X"
auto-create-directory="true"
order="1" mput-regex=".*">
</int-sftp:outbound-gateway>
<int:poller default="true" fixed-delay="500"/>
Когда я передаю один файл, приведенный выше код работает, но когда я передаю список файлов,Я получаю следующее исключение:
Caused by: java.lang.IllegalArgumentException: Only File or String payloads allowed for 'mput'
at org.springframework.integration.file.remote.gateway.AbstractRemoteFileOutboundGateway.doMput(AbstractRemoteFileOutboundGateway.java:816)
at org.springframework.integration.file.remote.gateway.AbstractRemoteFileOutboundGateway.handleRequestMessage(AbstractRemoteFileOutboundGateway.java:598)
at org.springframework.integration.handler.AbstractReplyProducingMessageHandler.handleMessageInternal(AbstractReplyProducingMessageHandler.java:109)
at org.springframework.integration.handler.AbstractMessageHandler.handleMessage(AbstractMessageHandler.java:158)
... 7 more
Есть идеи, как это исправить и загрузить несколько файлов?Пожалуйста, поделитесь любым полным примером.Спасибо