簡體   English   中英

Apache Karaf OSGi 應用程序結構

[英]Apache Karaf OSGi application structure

我需要創建一個應用程序並將其部署到 Karaf 中。 但是我需要使用 camel 組件和 java 組件(簡單的 spring bean)。 流程應該如下:

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

這只是一個簡單的路由。 但是我需要的是karaf接受和部署的OSGi bundle的目錄結構。

對於前我有:

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 bundle .jar文件中保留什么樣的目錄結構才能正確部署應用程序? 如您所見, su-camel模塊和su-bean模塊中有兩個src目錄。

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

最簡單的解決方案是只使用 bean 和 camel 路由創建一個包。 通常不需要從 bean 中拆分路由。 如果您出於某種原因需要拆分它,那么只需使用兩個捆綁包即可。

為了使部署更容易,您可以使用 karaf 功能文件,其中列出了兩個捆綁包以及它們的進一步依賴項。 Karaf 還支持可以包含許多包的 .kar 文件。 如果您的 karaf 服務器無法訪問 maven 存儲庫,則可以使用 kar 文件。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM