在OSGi Equinox上运行Jersey

时间:2014-05-08 09:57:34

标签: jersey osgi equinox

我们有一个应用程序,我们希望使用OSGi Equinox运行Jersey。请提供任何帮助或指示。我上网的所有内容都是使用Apache Felix。我不想那样做。 我的应用程序使用以下内容

Angular JS for Client端代码 泽西休息服务 OSGi Equinox和Jetty用于部署。

请建议是否可行,如果是,那么

2 个答案:

答案 0 :(得分:1)

请参阅https://github.com/everit-org/osgi-remote-jersey/tree/v1.0.2

  • 转到测试目录
  • 编辑pom.xml并将felixtest环境中的jetty.port更改为您喜欢的端口
  • run" mvn install"在测试
  • 转到目标/ eosgi-dist / felixtest / bin
  • 运行runConsole.bat(或linux上的runConsole.sh)
  • 打开localhost:port / system / console并查看安装的内容(基本上是测试项目的所有maven依赖项)

该解决方案也适用于felix和equinox。

根据问题更新(没有扩展程序):

您可以实现与扩展程序相同的逻辑。简而言之:

ResourceConfig resourceConfig = new ResourceConfig();
resourceConfig.register(myJAXRSAnnotatedObjectOrClassType);
Servlet servletContainer = new ServletContainer(resourceConfig);
// register the newly created servlet instance to the server

您可以通过多种方式注册该servlet:

  • 通过HTTPService
  • 白板图案
  • 通过创建wab和
    • 创建一个包装jersey servletContainer实例的自己的Servlet
    • 在web.xml中配置ServletContainer类型的新servlet

您可以多次调用resourceConfig.register。通过这种方式,您可以在一个servlet实例下注册许多JARS注释类。

使用resourceConfig.register,您不仅可以注册JAXRS注释类,还可以注册Jersey知道的任何组件。例如,如果要添加JSON解析功能,可以使用:

resourceConfig.register(JacksonFeature.class);

答案 1 :(得分:0)

你看过OSGi JAX-RS Connector了吗?它使用泽西岛,最初是在Equinox上开发和测试的。 AFAIK他们也支持Felix。

另一种选择是Eclipse Gyrex。但它更像是基于Equinox,Jetty和Jersey的完整堆栈,如果您更喜欢组装自己的堆栈,可能不是最佳选择。但是,它仍然在Jersey 1.x.在即将发布的Luna发布后,计划进行升级。