我想在 OSGI 容器(如 Karaf)上部署一个以任何方式(war、jar,我不关心)打包的 java webapp(带有 web.xml 和所有内容)。 有两个重要的约束:
- WEB-INF/lib 必须为空,打包的 webapp 应该在容器上安装的其他包中寻找所需的类
- bundle 应该是一个 webapp,所以容器知道它必须读取 web.xml 来运行它并通过已经安装在容器上的 HTTP 服务(比如 jetty)使它可用(比如在 Karaf 上) .
- 应该使用 maven-bundle-plugin 2.2.0 完成
我成功地制作了 bundle 并使用该插件和 maven-sling-plugin 自动部署了它们。我想念的是将我的包打包为 WAB 的正确配置,有人告诉我这是正确的打包方式,并且没有依赖性。
最佳答案
您绝对需要 web.xml 吗?我最近浏览并更新了许多打包为 wars 的 webapps,以将它们转换为纯 bundle 。您通常在 web.XML 中指定的大部分信息也可以在您的 list 中指定,以供 pax web(karaf 的 jetty 前端)获取。到目前为止,我还没有遇到过无法转换为纯 bundle (这将满足您的限制)的单一 war 。
关于java - 使用 maven-bundle-plugin 为不包含所有依赖项的 jar 的 OSGI 容器创建 Web 应用程序包 (WAB),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5743085/