RESTful 没有蓝图的 Karaf 服务 xml

RESTful service in Karaf without blueprint xml

我是 Karaf 的新手,因此正在寻找资源来使用 felix 注释而不使用 BundleActivator class(我的意思是实际 class 需要由我编写,但如果某些编译器或 maven 插件对我做同样的事情就可以了)和蓝图 xml 文件。到目前为止,我在第一部分(BundleActivator 部分)取得了成功,现在在编译后自动创建带有导入和导出语句的 MANIFEST.MF,为每个组件 class 创建相关的 XML 文件,并且将它打包成一个很好的 jar 包,当我将它部署在 Karaf 容器上时,它运行良好。但不起作用的是 RESTful 服务。捆绑包部署正确,但 REST 网址未公开,因此我无法访问它们。

请帮助我完成这项工作。我不想写一个 XML 文件,每次添加或删除 rest 服务时都需要修改它。

谢谢

如果你想完全避免蓝图那么你应该使用cxf-dosgi。您只需使用 jaxrs 注释您的休息服务并将其发布为具有一些特殊属性的 OSGi 服务。

参见cxf-dosgi rest sample

该示例使用标准 DS 注释和 maven bundle 插件即时创建 DS 组件xml。

如果您更喜欢在运行时使用蓝图,那么您可以使用 blueprint-maven-plugin。 See this example.

我找到了一种不使用 CXF 功能的方法。也就是说,创建一个组件 class 并在激活方法中获取 ConfigurationAdmin 的对象并将所需的上下文路径放在 jersy 服务器进程(使用 jersey publisher jar)上。使用此方法,我能够在不使用 blueprint.xml 文件的情况下在 Karaf 中部署任何 rest/serlvet。希望对您有所帮助。