当前位置: 首页 > 知识库问答 >
问题:

使用Apache Camel的通用文件传输路由

曾枫
2023-03-14
    null

在这种情况下,如果我们需要添加更多的源和目标,我们只需要更改属性文件。正如我所知,我们不能在Apache Camel中使用动态endpoint。

示例:

{server1-file1} - camel route(Generic) - {server2-file1}
{server1-file1} - camel route(Generic) - {server2-file1}
{server1-file1} - camel route(Generic) - {server2-file1}

共有1个答案

龙正初
2023-03-14

为了解决这个特殊的问题,您可以在Java中创建一个Camel路由,它允许您注入一个开始URI和一个结束URI。这种想法被称为路由模板。这方面的一个例子是:

public class FtpTemplateRoute extends RouteBuilder {
    private String startUri;
    private String endUri; 

    public FtpTemplateRoute(String startUri, String endUri) {
        this.startUri = startUri;
        this.endUri = endUri;
    }

    public void configure() {
        from(startUri)
           ...
           .to(endUri);
    }
}

然后,在设置CamelContext时,将其实例化X次:

CamelContext context = new DefaultCamelContext();
context.addRoutes(
    new FtpTemplateRoute("ftp:///dirA", "ftp:///dirB"));
context.addRoutes(
    new FtpTemplateRoute("ftp:///dirC", "ftp:///dirD"));

如何加载源URI和目标URI取决于您。

 类似资料:
  • 我需要将文件从文件夹同步到restendpoint。因此,如果文件被放置在特定文件夹中,我需要将该文件发送到接受多部分文件的RESTendpoint。我正在使用ApacheCamel来实现这一点。 RESTendpoint在Spring中编写,如下所示: 我是Camel的新手,并且已经弄清楚了如何通过构建路由并获取文件来轮询目录,但是我无法弄清楚如何使用此路由将此文件放入其余endpoint。这是

  • 问题内容: 我对SCP协议和JSch很陌生。我必须通过SCP将文件从远程设备传输到Android。服务器端开发人员拒绝透露有关设备的任何信息,除了文件位置和可用于通过SCP访问设备的根帐户。 这是我尝试的步骤。 确认使用JSch,我的Android客户端可以与服务器建立连接。[完成] 确认使用JSch和对象,我可以发送命令并读取其输出。[完成] 确认使用JSch和对象可以从设备传输文件。[失败]

  • 我对SCP协议和JSch非常陌生。我必须通过SCP从远程设备传输文件到Android。服务器端开发人员拒绝透露任何关于他们设备的信息,除了文件位置和可以用SCP访问它的根帐户。 以下是我尝试的步骤。 > 确认使用JSch和对象,我可以发送命令并读取其输出。[完整] 确认使用JSch和对象,我可以从设备传输文件。[失败] (3)失败的原因似乎是设备(服务器)没有为SFTP配置。制造者一直在说,像下面

  • 我正在尝试创建一个webservice,当调用它时,它会查看本地目录,从那里提取文件并上传到ftp服务器。 我可以创建一个简单的路由,从本地目录中选择文件并上传到ftp服务器,下面是代码: 但是,我想在通过restlet webservice调用特定路由时调用此文件传输,我尝试了以下代码,但没有成功: restlet从以下路径调用上述路径: 以下是我的serviceRouteProcessor的代

  • 但是,当我第一次调用此路由时,即使指定了fileName参数,文件input1.txt也会被传输。请帮忙。

  • 问题内容: 我有一个200MB的文件,想通过下载提供给用户。但是,由于我们希望用户仅下载一次此文件,因此我们这样做: 强制下载。但是,这意味着整个文件必须加载到内存中,这通常不起作用。我们如何以每块kb的速度将文件流式传输给他们? 问题答案: 尝试这样的事情