【问题标题】:RESTful service in Karaf without blueprint xml没有蓝图 xml 的 Karaf 中的 RESTful 服务
【发布时间】:2017-02-16 04:45:51
【问题描述】:

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

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

谢谢

【问题讨论】:

标签: java rest osgi karaf


【解决方案1】:

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

请参阅cxf-dosgi rest sample

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

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

【讨论】:

    【解决方案2】:

    我想出了一种不使用 CXF 功能的方法。也就是说,创建一个组件类并在激活方法中获取 ConfigurationAdmin 的对象并将所需的上下文路径放在 jersy 服务器进程(使用 jersey 发布者 jar)。使用这个方法,我能够在 Karaf 中部署任何 rest/serlvet,而无需使用 blueprint.xml 文件。我希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 2016-02-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多