2012-09-26 23 views
0

我正在使用apache-servicemix-4.3.1-fuse-01-15我正在做热部署。如何通过网络传输文件使用服务组合蓝图功能

我已经把如下图所示

<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> 

一个蓝图XML内部部署服务混合的文件夹,你可以看到我想要的文件从我的本地pc.But在记录它是传输到另一台计算机给出以下错误,尽管我已经访问了中提到的路径。

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。是否我所做的事情永远不会奏效。我需要提及用户名和密码。

回答

0

如果你想在计算机之间传输文件,你需要使用支持这样的协议:

  1. 文件
  2. FTP
  3. SCP

当您使用窗口,可以通过设置从计算机到远程计算机的网络共享连接来使用文件系统。例如将远程计算机安装为本地驱动器(例如H:或任何空闲字母)。例如,基本上如果你可以使它工作,所以你可以使用Windows文件浏览器看到远程计算机。提示:Camel中的文件组件使用Java的java.io.File API。所以,无论你可以使用它,都会受到支持。

FTP会要求另一台计算机有一个FTP服务器。

SCP通常在Windows上不受支持,您需要安装软件才能支持该功能。

+0

谢谢.. @Claus。我将尝试File选项,因为我不想在目标机器上安装FTP服务器。 – C4CodeE4Exe

+0

我已经从我的电脑 - >映射网络驱动器映射了驱动器。但它是抛出同样的错误?任何可能导致这种情况的见解? – C4CodeE4Exe

+0

您需要将驱动器映射到一个字母,例如H:\或您拥有的免费字母。 –

0

我不确定使用java的文件api的骆驼文件组件是否可以开箱即用。但是如果你决定使用骆驼路线来做这件事,你可以在接收文件/文件路径的部分编写一个自定义bean,并通过sftp或scp将它拷贝到远程机器,如上所述的克劳斯

if它是一台Linux机器,你可以很容易地通过jsch做SFTP/SCP,检查例子

如果一个窗口的机器,你可以设置一个FTP服务器,使用Apache的百科全书VFS