我想知道如何在OSGi平臺上運行HTTP服務器。我目前正在使用Equinox,並發現了一些關於嵌入Jetty bundle的官方信息,但是依賴關係的鏈接似乎已經斷開,並且整體上沒有很好的文檔記錄。 (http://www.eclipse.org/equinox/server/http_in_equinox.php)如何在OSGi框架中嵌入Web服務器?
謝謝。
我想知道如何在OSGi平臺上運行HTTP服務器。我目前正在使用Equinox,並發現了一些關於嵌入Jetty bundle的官方信息,但是依賴關係的鏈接似乎已經斷開,並且整體上沒有很好的文檔記錄。 (http://www.eclipse.org/equinox/server/http_in_equinox.php)如何在OSGi框架中嵌入Web服務器?
謝謝。
只需看看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。 它suport std。 Http服務,白板提交Servlet,過濾器,jsps。 也是戰爭(std或osgi清單)。
您可以使用Virgo:它基於equinox並集成了tomcat。
至於Jetty服務器,它肯定可以嵌入到OSGi中:Apache CXF project uses jetty爲SOAP請求提供服務,並且CXF在OSGi中運行時沒有任何問題。
您只需要將相應的軟件包安裝到您的嵌入式OSGI框架。有一個代碼示例:https://bitbucket.org/vbashur/diff/請看osgimain和osgiservice項目