0

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

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

<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 传输到另一台计算机。但是在日志中它给出了以下错误,尽管我可以访问 to 中提到的路径

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。是不是我正在做的事情永远行不通。我需要提到用户名和密码吗?

4

2 回答 2

0

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

  1. 文件
  2. ftp
  3. scp

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

FTP 将要求另一台计算机具有 FTP 服务器。

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

于 2012-09-27T06:18:22.350 回答
0

我不确定使用 java 文件 api 的骆驼文件组件是否可以开箱即用。但是,如果您一心想使用骆驼路线来执行此操作,则可以在接受文件/文件路径的部分中编写一个自定义 bean,并通过 sftp 或 scp 将其复制到远程机器,如 claus 所述

如果它是一台 linux 机器,您可以通过jsch轻松执行 sftp/scp ,查看示例

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

于 2012-09-27T07:54:04.457 回答