我想知道如何在 OSGi 平台中运行 HTTP 服务器。我目前正在使用 Equinox 并找到了一些关于嵌入 Jetty 捆绑包的官方信息,但指向依赖项的链接似乎已损坏,并且总体上没有很好的文档记录。(http://www.eclipse.org/equinox/server/http_in_equinox.php)
谢谢你。
我想知道如何在 OSGi 平台中运行 HTTP 服务器。我目前正在使用 Equinox 并找到了一些关于嵌入 Jetty 捆绑包的官方信息,但指向依赖项的链接似乎已损坏,并且总体上没有很好的文档记录。(http://www.eclipse.org/equinox/server/http_in_equinox.php)
谢谢你。
看看 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"));
}
}
还有 Pax-Web,它为您提供了大量功能。看看http://team.ops4j.org/wiki/display/paxweb/Pax+Web。它支持标准。Http- 服务、Servlet、过滤器、jsps 的白板呈现器。还有战争(std 或 osgi manifest)。
您所需要的只是将相应的包安装到您的嵌入式 OSGI 框架中。有一个代码示例:https ://bitbucket.org/vbashur/diff/看看osgimain和osgiservice项目
您可以使用Virgo:它基于 Equinox 并集成了 tomcat。
至于 Jetty 服务器,它肯定可以嵌入到 OSGi 中:Apache CXF 项目使用 jetty来服务 SOAP 请求,而 CXF 在 OSGi 中运行没有任何问题。