2012-07-25 53 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文件。