如何在OSGi框架中嵌入Web服务器?

时间:2013-02-08 16:47:31

标签: webserver osgi bundle httpserver

我想知道如何在OSGi平台上运行HTTP服务器。我目前正在使用Equinox,并发现了一些关于嵌入Jetty包的官方信息,但是依赖关系的链接似乎已经破坏,总体而言,它没有很好地记录。 (http://www.eclipse.org/equinox/server/http_in_equinox.php

谢谢。

4 个答案:

答案 0 :(得分:1)

看看Apache Felix Http服务http://felix.apache.org/documentation/subprojects/apache-felix-http-service.html因为这些是设计良好的OSGi包,所以它们也在Equinox中运行。

我正在使用他们的白板模型,使用此捆绑包只需注册一个具有服务属性的Servlet。如果要全部检查,建议您下载bndtools并使用webconsole和DS创建运行时。这是您必须为Hello World servlet编写的所有内容:

package com.example;

@Component(alias="/hello", provide=Servlet.class)
public MyServlet extends HttpServlet {
  public void doGet(HttpServletRequest req, HttpServletResponse rsp) {
     rsp.setContentType("text/plain;charset=UTF-8");
     rsp.getOutputStream().write("Hello World".getBytes("UTF-8"));
  }
}

答案 1 :(得分:0)

还有Pax-Web,它为您提供了大量功能。 看看http://team.ops4j.org/wiki/display/paxweb/Pax+Web。 它支持标准。 Http-服务,白板为Servlet,过滤器,jsps提供服务。 还有战争(std或osgi清单)。

答案 2 :(得分:0)

你可以使用Virgo:它基于equinox并集成了tomcat。

对于Jetty服务器,它肯定可以嵌入到OSGi中:Apache CXF project uses jetty服务于SOAP请求,而CXF在OSGi中运行没有任何问题。

答案 3 :(得分:0)

您只需要在嵌入式OSGI框架中安装相应的软件包即可。有一个代码示例:https://bitbucket.org/vbashur/diff/查看 osgimain osgiservice 项目