我们有一个应用程序,我们希望使用OSGi Equinox运行Jersey。请提供任何帮助或指示。我上网的所有内容都是使用Apache Felix。我不想那样做。 我的应用程序使用以下内容
Angular JS for Client端代码 泽西休息服务 OSGi Equinox和Jetty用于部署。
请建议是否可行,如果是,那么
答案 0 :(得分:1)
请参阅https://github.com/everit-org/osgi-remote-jersey/tree/v1.0.2
该解决方案也适用于felix和equinox。
根据问题更新(没有扩展程序):
您可以实现与扩展程序相同的逻辑。简而言之:
ResourceConfig resourceConfig = new ResourceConfig();
resourceConfig.register(myJAXRSAnnotatedObjectOrClassType);
Servlet servletContainer = new ServletContainer(resourceConfig);
// register the newly created servlet instance to the server
您可以通过多种方式注册该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发布后,计划进行升级。