2012-07-25 78 views
1

我需要在Karaf中創建和部署應用程序。但我需要使用駱駝組件和java組件(簡單的spring bean)。流程如下:Apache Karaf OSGi應用程序結構

WebService(not matter for me) -> camel-component -> spring-bean -> camel-component -> WebService(not matter for me). 

這只是一個簡單的路由。但我需要的是karaf接受並部署的OSGi捆綁軟件的目錄結構。

對於e.x.我有:

su-camel 
    -src 
    -main 
     -resources 
     -META-INF 
      xbean.xml (spring-bean) 
    -test 
     -java 
     -resources 

su-bean 
    -src 
    -main 
     -java 
     -resources 
     -META-INF 
      xbean.xml (spring-bean) 
    -test 
     -java 
     -resources 

我與Maven包裝好,所以什麼目錄結構我應該保持在OSGi包.jar文件,應用程序將被正確部署?正如你所看到的,在su-camel模塊和su-bean模塊中有兩個src目錄。

我知道servicemix接受.zip文件,並添加了上述結構中添加的所有組件。 karaf是否支持那樣的結構?

回答

2

適當的OSGi解決方案將創建兩個捆綁包,一個用於每個項目並部署它們兩個。如果您不想這樣做,可以在項目清單中使用Embed-Dependency屬性來包含依賴項(camel)包。這將只創建一個包,供您部署

3

最簡單的解決方案是使用bean和駱駝路由創建一個包。通常情況下,不需要從Bean中分離路由。如果因爲某些原因需要拆分它,那麼只需使用兩個捆綁包。

爲了使部署更容易,您可以使用karaf功能文件,其中列出了兩個捆綁包並最終列出了它們的進一步依賴關係。 Karaf還支持可包含許多捆綁的.kar文件。如果您的karaf服務器無法訪問maven repo,則需要使用kar文件。