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