1. 程式人生 > >Apache Camel框架之FTP路由

Apache Camel框架之FTP路由

在做專案整合型別的專案的時候,經常會有這樣的需求,使用者或者別的系統將檔案傳到一個FTP server,然後系統從FTP server取檔案進行相應的處理.

本文簡單的介紹和示例一個用Camel實現這樣的需求:監聽FTPserver是否有檔案,取到檔案做相應處理傳到另外一個系統. (圖片來源於Camel in Action)


1,搭建一個FTP server,從http://sourceforge.net/projects/filezilla/files/ 下載FileZilla安裝,設定一個使用者yorker/123456.

可以參照這個網址 http://xbeta.info/filezilla-server.htm

2,在Camel裡實現路由:

[java] view plaincopyprint?
  1. CamelContext context = new DefaultCamelContext();
  2. context.addRoutes(new RouteBuilder() {
  3. publicvoid configure() {
  4. from("ftp://localhost/inbox?username=yorker&password=123456").to(
  5. "file:d:/temp/outbox");
  6. }
  7. });
  8. context.start();
  9. boolean loop = true;
  10. while
    (loop) {
  11. Thread.sleep(25000);
  12. }
  13. context.stop();
        CamelContext context = new DefaultCamelContext();
        context.addRoutes(new RouteBuilder() {
            public void configure() {                          
                from("ftp://localhost/inbox?username=yorker&password=123456").to(
                "file:d:/temp/outbox");
            }
        });
        context.start();
        boolean loop = true;
        while (loop) {
            Thread.sleep(25000);
        }

        context.stop();

這裡主要是為了示例Camel對FTP的支援,沒有加入processor的處理,downstream system也僅僅是用放到本地資料夾做示例.不過真正做專案的時候,在to裡可以是別的型別,如JMS的queue,別的系統的FTB inbound資料夾,Web service等等.如將上面的from裡面的uri寫到to,則為上傳到ftp資料夾.

執行時除了Camel要用到的jar包,還需要http://commons.apache.org/net/download_net.cgi 下載commons-net.jar

如何在流程的中間加入processor處理可以參見 http://blog.csdn.net/kkdelta/article/details/7231640

相關推薦

Apache Camel框架FTP路由

在做專案整合型別的專案的時候,經常會有這樣的需求,使用者或者別的系統將檔案傳到一個FTP server,然後系統從FTP server取檔案進行相應的處理. 本文簡單的介紹和示例一個用Camel實現這樣的需求:監聽FTPserver是否有檔案,取到檔案做相應處理傳到另外一個系統. (圖片來源於Camel i

Apache Camel框架HTTP路由

繼介紹完Camel如何處理FTP,JMS介面之後,今天介紹一下系統整合的時候經常遇到的另一個介面,HTTP,一個示例需求如下圖所示:(圖片來源於Camel in Action) 本文給出一個簡單的程式碼示例如何用Camel來實現這樣一個應用: 1,在一個JAVA類裡配置如

Apache MINA 框架預設session管理類實現

protected final void doSetAll(IoSessionConfig config) { if (!(config instanceof SocketSessionConfig)) { return; } if

Apache Camel框架整合Spring

Apache Camel提供了和Spring的整合,通過Spring容器(ApplicationContext)來管理Camel的CamelContext,這樣的話,就不需要寫程式碼來控制CamelContext的初始化,啟動和停止了.Camel會隨著Spring的啟動而啟

Apache Camel框架入門示例

Apache Camel是Apache基金會下的一個開源專案,它是一個基於規則路由和處理的引擎,提供企業整合模式的Java物件的實現,通過應用程式介面 或稱為陳述式的Java領域特定語言(DSL)來配置路由和處理的規則。其核心的思想就是從一個from源頭得到資料,通過pr

python-django rest framework框架路由

dex frame self elf rgs nat register model create 路由 第一類:原始繼承APIView # http://127.0.0.1:8000/api/v1/auth/ url(r‘

分布式架構探索 - 2. WebService RPC框架Apache CXF

tomcat7 als cti nvi urn lap add ring mod Apache CXF是一個開源的WebService RPC框架。 例子: 1. 新建一個maven web項目, 添加pom 如下: <?xml version="1.0"

django框架視圖系統和路由系統

沒有 *args mat rap 其他 自己 XML func quest 內容回顧:     1. tags 1. for循環 {% for name in name_list %} {{ name }}

Apache Camel FTP + Spring Boot 配置簡述

說明 由於之前專案中已經使用 apache camel ftp 工具來處理 ftp 相關操作,這裡沿用該工具。簡要配置如下: 工具包 <dependency> <groupId>org.apache.camel</groupId>

Django框架路由

1,路由系統就是url系統,整個url系統就是請求進入Django專案的入口,每一個請求的種類由url分析完畢並再去返回相應的響應,它的本質是url與要為該url呼叫的檢視函式之間的對映關係表(當專案特別龐大,請求特別多,的時候需要按照功能的不同編寫路由系統) 瀏覽器請求的8中方式  

apache camel 簡單路由條件篩選

Camel中支援的路由規則非常豐富,包括:Message Filter、Based Router、Dynamic Router、Splitter、Aggregator、Resequencer等等。在Camel的官方文件中使用了非常形象化的圖形來表示這些路由功能(http://camel.apache

apache camel 簡單使用 及第一個路由apache-timer元件

簡介 camel是一個非常強大的基於規則的路由以及媒介引擎 重要名詞 Camel Context  camel的執行容器,管理所有的camel路由。類似於spring中的context。 Route  路由,它定義了Message如何在

Linuxftp與tftp、vsftp,vsftpd,apache與httpd

ftp、vsftp、vsftpd: FTP 是File Transfer Protocol(檔案傳輸協議)而中文簡稱為“文傳協議”。用於Internet上的控制檔案的雙向傳輸。 VSFTP是一個基於GP

Apache Camel:基於企業整合模式(EIP)的開源整合框架

本資源由 伯樂線上 - 唐尤華 整理 Apache Camel 是一個功能強大的開源整合框架,基於企業整合模式(EIP)提供了強大的Bean整合功能。 介紹 通過Camel可以用企業整合模式建立路由和仲裁規則,可以使用基於Java的

1-6.Laravel框架路由

什麼是路由: 將使用者的請求按照事先規劃的方案提交給指定的控制器或者功能函式來進行處理. 在ThinkPHP框架中,當我們在URL地址中,傳遞m、c、a三個引數時,系統會自動跳轉到指定模型中指定控制器的指定方法,這些處理過程都是由框架自動完成的。但是,在Laravel框架

Apache Camel 與 Spring Boot 整合,通過FTP定時採集、處理檔案

1、概要:     本專案主要是通過在Spring平臺上配置Camel、FTP,實現定時從FTP伺服器下載檔案到本地、解析檔案、存入資料庫等功能。   2、搭建空專案:   Spring Boot有幾種自動生成空專案的機制:CLI、Spring tool suite、網站Spring Initializr,我

Go語言高級篇beego框架參數配置與路由配置

路由配置 解析 sql false 展示 func control prot hello 一、參數配置 beego默認會解析當前應用下的conf/app.conf文件 1.1、beego的參數配置 appname = WEB httpport = 8080 r

Apache Camel資料轉換

在做系統整合的時候,必不可少的任務就是將資料從一種格式轉換為另一種格式,再把轉換後的格式發到目標系統: Camel提供的Message translator可以分為: ■ Using a Processor ■ Using beans ■ Using <trans

01 . Go框架Gin框架從入門到熟悉(路由和上傳檔案)

#### Gin框架簡介 > Gin是使用Go/Golang語言實現的HTTP Web框架, 介面簡潔, 效能極高,截止1.4.0版本,包含測試程式碼,僅14K, 其中測試程式碼9K, 也就是說測試原始碼僅5k左右, 具有類似Martini的API, 效能更高-快40倍. ##### Gin特性 `

python框架 Tornado 學習筆記(一)

tornado pythontornado 一個簡單的服務器的例子:首先,我們需要安裝 tornado ,安裝比較簡單: pip install tornado 測試安裝是否成功,可以打開python 終端,輸入: import tornado.https