2013-02-11 55 views
2

我使用spring配置創建了一個Camel項目,現在我需要在我的生產環境中部署和運行它。基本上它是一個監聽RabbitMQ代理的進程,並且在發送消息時對其進行處理。我使用Eclipse和我創建這個目標調試/運行配置:部署Apache Camel項目

camel:run 

使用Spring配置文件來定義路線和豆類,我沒有寫任何主類,所以我怎麼能部署它,運行?我無法在生產環境中重新編譯項目,因爲我無法安裝新軟件,所以我需要運行我的過程的所有內容都必須從我的開發環境中複製。

任何提示?謝謝!

回答

3

http://camel.apache.org/running-camel-standalone.html

http://camel.apache.org/running-camel-standalone-and-have-it-keep-running.html

描述機制,允許您部署/運行。

camel:run基本上與創建加載Spring應用程序上下文的org.apache.camel.spring.Main類相同。它可以如此簡單:

public static void main(final String[] args) { 

    Main main = new Main(); 
    main.setApplicationContextUri("classpath:META-INF/applicationContext.xml"); 
    main.enableHangupSupport(); 

    try { 
     main.run(); 
    } ... 
} 

這與camel:run目標基本相同。

爲了正確部署,您可能需要使用maven assembly pluginmaven shade plugin。這將允許您創建可部署的單個工件(zip,jar,無論)。相同的代碼,相同的路由定義。

+1

cmonkey,謝謝!這是我希望收到的答覆。簡短的參考和一個小代碼示例。輝煌!完善! – 2013-02-11 15:52:16

+0

cmonkey,我有一些麻煩的過程。我怎樣才能讓它永遠活着? (直到我手動殺死它)。我刪除了enableHangupSupport(),現在它仍然活着40/50分鐘,但之後它將關閉。使用enableHangupSupport()它至少保持4分鐘。 – 2013-02-14 13:30:30

+0

描述的過程*應該保持它永遠活着。我假定在應用程序代碼中引發了一些足夠致命的異常。或者,一些代碼正在銷燬應用程序上下文。任何日誌?標準錯誤?根據問題可能值得一個新問題。 – cmonkey 2013-02-14 17:07:40