我正在使用REST接口公开在一个OSGi包中生成的一些数据,以便以后任何人都可以使用典型的http请求。为此,我使用了apache、JAX和Jetty的组合(主要用于测试目的)。
我的整个应用程序以两种方式分发:
虽然在核心启动配置中,我可以在没有任何问题的情况下使其工作,但请查看清单:
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"当我试图启动整个发行版时,jetty服务器似乎没有启动,因此,RESTful服务无法正常工作。完整的发行版提供了更多的插件,主要与向导、透视图等相关。此问题的根源在某种程度上与cxf-dosgi-ri-singlebundle-分发包有关,可以通过“强制”将该包的自动启动“强制”为true来解决,而不是默认(请查看下面的图像):

虽然这样可以,但我的问题是,...why会发生这种情况吗?第二,也是最重要的,我通过一个更新站点发布了完整的发行版,这样用户就可以下载它,打开透视图并开始使用它,也就是说,这会影响最终的发行版吗?对于更新站点中的apache包,有什么方法可以控制这个auto=true?
希望我能说清楚..。
谢谢!
发布于 2012-08-23 09:13:52
我不喜欢回答我自己的问题,但由于我没有得到任何反馈,也许其他人也有同样的problem...here。
我决定通过不使用apache来改变restful包的整个设计,因为它实际上并不需要。我所需要做的就是嵌入式Jetty服务器和javax来处理HttpRequests和HttpResponses。因此,我摆脱了第三方库的依赖,同时利用了启动问题。
从Eclipe的官方网站上得到了这些想法:
在Equinox中嵌入HTTP服务器
编写基于包的服务器应用程序
此外,还可以在这里找到更多的手工教程:
作为Web应用程序的OSGi
扩展Eclipse:显示捆绑归档中的HTML内容
特别感谢两位作者的启示:)。
https://stackoverflow.com/questions/11879886
复制相似问题