Ich bin ziemlich neu in der ganzen Java- und OSGi-Welt und habe Probleme, das Ökosystem einer OSGi-Webanwendung zu verstehen.Probleme beim Verstehen des gesamten OSGi-Web-Ökosystems
Um genauer zu sein, die ich im Moment bin versucht, die Teile des Öko-System zu verstehen, wie alle miteinander verwandt sind:
- OSGi Framework (zB Apache Felix, Equinox, Knoplerfish)
- OSGi Runtime (zB Frühjahr DM Server, Pax Runner, Apache Karaf)
- Web Extender (zB Pax Web Extender, Spring Web Extender)
- Web Container (zB Apache Tomcat, Jetty)
Sie, um eine visuelle Darstellung von meinem eigentlichen Verständnis ihrer Beziehung geben Sie dieses Bild Check-out:
alt text http://img253.imageshack.us/img253/1631/osgiwebenvironmentschem.png
Soweit ich das OSGi Framework ist eine Implementierung der OSGi-Spezifikation kennen. Die Laufzeitumgebung ist eine Distribution, die zusätzliche Funktionen über die OSGi-Spezifikation hinaus hinzufügt, wie beispielsweise die Protokollierung. Da es im Klassenpfad-Mechanismus von OSGi und Web-Containern wie Tomcat einige Unterschiede zu geben scheint, brauchen Sie eine Art von Übersetzer. Dieser Teil wird vom "Web Extender" verwaltet.
Würden Sie bitte die ganze Sache für mich klären? Verstehe ich alles richtig?
Vielen Dank für Ihre schnelle Antwort verleugnen. Wenn ich Sie richtig verstehe, nimmt der Web-Extender WAR-Dateien, die normalerweise in einem Web-Container wie Tomcat bereitgestellt werden, und würde sie auf der OSGi-Laufzeit ausführen. Der OSGi HttpService würde sie dann über das HTTP-Protokoll "im Web" zur Verfügung stellen. Richtig? Fazit: Ich würde keinen Web-Container wie Tomcat brauchen? – Jens
Ja, genau richtig, wie es zusammenpasst. Ihre Dienste werden über den OSGi http-Dienst zur Verfügung gestellt. In der Praxis verwendet der Web-Extender jedoch einen Webcontainer, um den WAR trotzdem bereitzustellen. Der Vorteil, den Sie erhalten, ist, dass der WAR mit Ihren normalen Startskripten des OSGi-Frameworks gestartet werden kann und die WARs an der normalen Abhängigkeitsverwaltung des OSGi-Frameworks teilnehmen können (dh Sie können sich auf WAR: s und WAR: s verlassen) kann von anderen OSGi-Bundles abhängen). –
Und alle Servlets werden beim OSGi http-Dienst registriert. –