2012-09-26 55 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