【问题标题】:apache-cxf dosgi restful service as eclipse plug-in weirdnessapache-cxf dosgi restful service as eclipse 插件怪异
【发布时间】:2012-08-09 08:57:32
【问题描述】:

我正在使用 REST 接口公开在一个 OSGi 包中生成的一些数据,以便之后任何人都可以通过典型的 http 请求来使用这些数据。为此,我使用了 apache-cxf、JAX-RS 和 Jetty 的组合(主要用于测试目的)。

我的整个应用程序以两种方式分发:

  • 核心:将一组最小捆绑包作为 OSGi 框架运行。
  • 完整版:Core + 加上一组要在 Eclipse 中使用的插件,以图形方式表示。

在核心启动配置中,我可以毫无问题地完成这项工作,请查看清单:

Require-Bundle: cxf-dosgi-ri-singlebundle-distribution;bundle-version="1.3.1",org.eclipse.core.runtime, org.eclipse.osgi.services;bundle-version="3.3.0", org.mortbay.jetty.server;bundle-version="6.1.23", org.mortbay.jetty.util;bundle-version="6.1.23"

当我尝试启动完整发行版时,码头服务器似乎没有启动,因此 RESTful 服务无法正常工作。完整的发行版附带了更多的插件,主要与向导、透视图等有关。这个问题的根源在某种程度上与 cxf-dosgi-ri-singlebundle-distribution 捆绑包有关,可以通过“强制”这个捆绑包的自动启动为 true 来解决,而不是默认(查看下图):

虽然这没关系,但我的问题是……为什么会这样?其次,也是最重要的一点,我通过更新站点分发完整版本,因此用户可以下载它,打开透视图并开始使用它,也就是说,这会影响最终分发吗?有什么方法可以控制更新站点中 apache-cxf 包的 auto-start=true 吗?

希望我能说清楚...

谢谢!

【问题讨论】:

    标签: eclipse rest eclipse-plugin cxf


    【解决方案1】:

    我不喜欢回答我自己的问题,但是因为我没有得到任何反馈,也许其他人也有同样的问题......就这样吧

    我决定不使用 apache-cxf 来更改我的 restful 包的整个设计,因为它确实不需要。我需要做的就是嵌入式 Jetty 服务器和用于处理 HttpRequests 和 HttpResponses 的 javax。因此,我摆脱了对第三方库的依赖,同时利用了启动问题。

    从 Ecipe 的这些官方网站获得想法:

    Embedding an HTTP server in Equinox

    Writing a bundle-based server application

    此外,还可以在此处找到更多动手教程:

    OSGi as a Web Server application

    Extending Eclipse: displaying HTML content from a bundled archive

    特别感谢两位作者的启迪:)。

    【讨论】:

      猜你喜欢
      • 2012-02-08
      • 2012-03-30
      • 2011-09-15
      • 1970-01-01
      • 1970-01-01
      • 2011-08-21
      • 2014-08-08
      • 1970-01-01
      • 2015-09-27
      相关资源
      最近更新 更多