1

我需要创建一个应用程序并将其部署到 Karaf 中。但是我需要使用camel组件和java组件(简单的spring bean)。流程应如下所示:

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

这只是一个简单的路由。但我需要的是 karaf 接受和部署的 OSGi 包的目录结构。

对于前我有:

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文件中保留什么目录结构才能正确部署应用程序?如您所见,模块中有两个src目录su-camelsu-bean模块。

我知道 servicemix 接受.zip所有组件都添加了上述结构的文件。karaf 支持这样的结构吗?

4

2 回答 2

3

最简单的解决方案是只创建一个包含 bean 和骆驼路线的捆绑包。通常不需要从 bean 中拆分路由。如果您出于某种原因需要拆分它,那么只需使用两个捆绑包。

为了使部署更容易,您可以使用 karaf 功能文件,在其中列出两个捆绑包以及最终它们的进一步依赖项。Karaf 还支持可以包含许多包的 .kar 文件。如果您的 karaf 服务器无法访问 maven 存储库,则可以使用 kar 文件。

于 2012-07-25T21:53:27.027 回答
2

正确的 OSGi 解决方案是创建两个包,每个项目一个包并同时部署它们。如果您不想这样做,可以使用项目清单中的 Embed-Dependency 属性来包含依赖项(camel)包。这将只创建一个捆绑包供您部署

于 2012-07-25T16:44:04.410 回答