作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用 DSL 配置和 spring。
我的路线如下:
@Component
public class UploadRoutesDefinition extends RouteBuilder {
@Override
public void configure() throws Exception {
from("seda:rest_upload")
.process(new Processor() {
@Override
public void process(Exchange exchange) {
...
String sftPathForAdditionalFile = ....
String AdditionalFileContent = ...
...
}
).to(String.format(SFTP_BASE_URL,systemSettingsService.getSystemSettings().getSftpUserName(),
systemSettingsService.getSystemSettings().getSftpHost(),
systemSettingsService.getSystemSettings().getSftpPort(),
systemSettingsService.getSystemSettings().getSftpAttachmentsPushFailedPath(),
systemSettingsService.getSystemSettings().getSftpPassword()))
它允许我从 seda:rest_upload
读取文件,然后将其移动到 sftp 文件夹。
我想另外移动一个文件。我知道 process
方法中的路径和内容。
我怎样才能实现它?
我当前的代码;
.process(new Processor() {
@Override
public void process(Exchange exchange) throws Exception {
exchange.getIn().setHeader("CamelFilename", "ololo.txt");
exchange.getIn().setBody(exchange.getProperty(PUSH_ERROR_MESSAGE, String.class).getBytes());
exchange.getIn().setHeader("destFilePath", sftpErrorFileTextPath);
}
})
.to(String.format(SFTP_BASE_URL + "&fileExist=Append",
systemSettingsService.getSystemSettings().getSftpUserName(),
systemSettingsService.getSystemSettings().getSftpHost(),
systemSettingsService.getSystemSettings().getSftpPort(),
"${header.destFilePath}",
systemSettingsService.getSystemSettings().getSftpPassword()))
.end();
最佳答案
这是一种方法,
@Override
public void configure() throws Exception {
from("seda:rest_upload")
.multicast()
.to("direct::sendMainFile")
.to("direct:sendAnotherFile") // You could also use seda:
.end();
from("direct:sendMainFile")
.process(new Processor() {
@Override
public void process(Exchange exchange) throws Exception {
String filepath = <calculate filepath>;
String completeFilePath = systemSettingsService.getSystemSettings().getSftpAttachmentsPushFailedPath() + filepath
exchange.getIn().setHeader("destFilePath", completeFilePath);
exchange.getIn().setHeader("CamelFileName", fileNameforMainFile);
}
}.toD(sftpRoute()) // It is toD not to
from("direct:sendAnotherfile")
.process(new Processor() {
@Override
public void process(Exchange exchange) throws Exception {
// Here you have the same body which was sent from rest_upload
// extract the info from exchange.getIn().getBody()
// Read the file and set it as exchange body
String fileContent = <Your logic to read file>
exchange.getIn().setBody(fileContent);
exchange.getIn().setHeader("CamelFileName", fileNameforYourAdditionalFile)
String completeFilePath = systemSettingsService.getSystemSettings().getSftpAttachmentsPushFailedPath() + filepath
exchange.getIn().setHeader("destFilePath", completeFilePath);
}
})
.toD(sftpRoute()); // It is toD not to
}
private String sftpRoute() {
return String.format(SFTP_BASE_URL,systemSettingsService.getSystemSettings().getSftpUserName(),
systemSettingsService.getSystemSettings().getSftpHost(),
systemSettingsService.getSystemSettings().getSftpPort(),
"${header.destFilePath}",
systemSettingsService.getSystemSettings().getSftpPassword())
}
}
关于java - Camel sftp 制作者。如何从单个处理器将多个文件放入不同的 sftp 文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49446334/
我正在寻找现成的 Xcode 电子书模板。目前为止我已经找到了 A) 故事书 iOS 应用程序模板 http://www.binpress.com/app/story-book-ios-app-tem
我使用 DSL 配置和 spring。 我的路线如下: @Component public class UploadRoutesDefinition extends RouteBuilder {
我是一名优秀的程序员,十分优秀!