如何使用服务组合蓝图功能跨网络传输文件

时间:2012-09-26 12:50:19

标签: apache-karaf apache-servicemix

我正在使用 apache-servicemix-4.3.1-fuse-01-15 ,我正在进行热部署。

我已将一个蓝图xml放在service-mix的deploy文件夹中,如下所示

<blueprint
xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.osgi.org/xmlns/blueprint/v1.0.0 http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd">
 <camelContext xmlns="http://camel.apache.org/schema/blueprint">
    <route>
        <from uri="file://D:/apache-servicemix-4.3.1-fuse-01-15/apache-servicemix-4.3.1-fuse-01-15/source/?recursive=true" /><!--sample path of source folder-->
        <to uri="file:////192.168.68.215/Fuse"/><!--sample path of destination folder-->
    </route>
</camelContext>
</blueprint>

正如您所看到的,我想将文件从本地pc传输到另一台计算机。但是在日志中它会出现以下错误,但我已经接受了中提到的路径。

Caused by: java.io.FileNotFoundException: \\192.168.68.215\Fuse\core_logs-12012012\core-logs_20110908 - Copy - Copy (4)\core-logs_20110908.log (The system cannot find the path specified)

如果我用我的本地目录路径替换IP,它工作正常。

我很想知道这里出了什么问题。

我应该使用ftp,sftps还是ftp。是不是我正在做的事情永远不会工作。我需要提到用户名和密码。

2 个答案:

答案 0 :(得分:0)

如果要在计算机之间传输文件,则需要使用支持该协议的协议,例如:

  1. 文件
  2. FTP
  3. SCP
  4. 使用Windows时,可以通过设置从计算机到远程计算机的网络共享连接来使用文件系统。例如,将远程计算机安装为本地驱动器(例如H:或任何免费信件)。例如,基本上如果你可以使它工作,你可以使用Windows文件资源管理器查看远程计算机。提示:Camel中的文件组件使用Java的java.io.File API。因此无论你能使用它,都可以得到支持。

    FTP需要另一台计算机才能拥有​​FTP服务器。

    Windows通常不支持SCP,您需要安装软件来支持它。

答案 1 :(得分:0)

我不确定使用java文件api的camel文件组件是否可以开箱即用。但是,如果你一直想使用驼峰路线来做这件事,你可以在接收文件/文件路径的部分中编写一个自定义bean,并通过sftp或scp将其复制到远程机器,如提到的那样

如果是linux机器,你可以通过jsch轻松完成sftp / scp,查看示例

如果它是一个窗口机器,你可以设置一个ftp服务器并使用apache commons VFS