我似乎真的在这里挣扎。我想做的(按此顺序)是:
1)使用Jersey应用程序和带注释的资源构建RESTful资源(这不是问题)。
2)将该软件包打包,安装并启动到Felix OSGi容器中,作为HTTP服务,包括依赖项。
3)在OSGi容器中打包,安装和启动一个WAR,它可能将#2作为依赖项。
我希望能够使用Maven完成所有这些工作。
我似乎无法找到一个工作的例子,即使是单独的步骤,特别是涉及Maven,这项工作更不用说这些步骤的组合了。我尝试过在网络上拼凑各种q& a,并取得了不同程度的成功但不是端到端的工作示例。
任何指针都会受到赞赏......
答案 0 :(得分:3)
我没有Jersey的例子,但我有tutorial for CXF with Apache Karaf(使用Felix)。它显示了如何创建Rest服务并使用maven构建它。使用Apache Karaf,您可以直接从maven仓库部署捆绑包。将其移至Jersey可能只是意味着交换lib并使用另一个蓝图配置初始化其余服务。
Apache Karaf也允许部署战争和wabs,但我还没有测试过它们。
答案 1 :(得分:3)
Apache Stanbol完成大部分或全部(不确定是否包含开箱即用的战争包装)来实现其RESTful服务。
你必须深入研究codebase,但在那里搜索Jax-RS注释会指向正确的位置。
答案 2 :(得分:1)
我也正在努力完成你想要做的事情。到目前为止,我似乎非常接近,但唉不是那里,这就是我一直在做的事情:
答案 3 :(得分:1)
我尝试了这个组合并使其运行 -
1-模块化规范 - > OSGi规范
2- OSGi实施 - > Apache Felix 4.4.0
3- OSGi Runtime - > Apache Karaf 3.0.3
4- REST的软件架构规范 - JAX-RS
5- JAX-RX实现 - > Apache CXF - 2.7.5
你可以参考这个很好的教程 - http://java.dzone.com/articles/building-cxf-rest-service-osgi
现在,我还打算从CXF搬到泽西岛,因为泽西岛是JAX-RS的轻型等待参考实施。现在我计划将Jersey与Apache Felix / Apache Karaf一起使用。您可以在Karaf中安装Jersey并将Jersey Rest Web Services部署为Bundle。您可以参考本教程 - https://vzurczak.wordpress.com/2014/09/30/web-applications-with-osgi-working-with-jersey/
答案 4 :(得分:1)
这是github的一个很好的例子:https://github.com/ddragosd/jax-rs-on-karaf