我正在使用Apache Felix HTTP Jetty捆绑包。我可以启动servlet容器/ HttpService并使用系统属性
将其分配给端口org.osgi.service.http.port=8080
但我希望有两个这样的服务,绑定到两个不同的端口,例如我的应用程序API应该在8080上提供,但是一些静态网页应该在端口80上提供。
编辑:对于最后一个问题,该服务附带属性中设置的端口值 org.osgi.service.http.port:8080
答案 0 :(得分:2)
如果您切换到Pax-Web,您将能够做类似的事情。 Pax-Web支持虚拟主机,让您将某个应用程序绑定到单个连接。关于如何使用它的更多细节,你可以在我的两篇博文中找到:
Bind web applications to specific http connectors - part 1
Bind web applications to specific http connectors - part 2
答案 1 :(得分:0)
据我所知,OSGi中的Http服务器无法实现这一点。在Java中创建一个小的转发器当然很容易做到。
答案 2 :(得分:0)
我相信如果Apache Felix HTTP Jetty包暴露了ManagedServiceFactory,你可以。 (编辑:没有)
How to support virtual hosts with OSGI HttpService
http://www.codeaffine.com/2011/10/05/raprwt-osgi-integration-ii/
如果我明白,魔法就在这里:
如果您使用托管服务工厂的pid创建并注册配置,它将使用新的Pid创建一个新的HttpService实例。
答案 3 :(得分:0)
Felix http.jetty 3.2.6提供了一个ManagedServiceFactory,可以轻松创建具有不同配置的多个http实例。