2010-03-03 14 views
48

Was sind die Vorteile von embedding Anlegesteg vs deploying Ihre Webapp (s) in Anlegesteg? Wenn Sie beabsichtigen, mehr als eine Web-App zu implementieren, sollten Sie sich streng an die Bereitstellung einer WAR-Datei für jede Web-App halten (anstatt einen eingebetteten Server zu schreiben, der jede Web-App aufruft)?Anlegesteg: Einbetten oder nicht einbetten?

+5

Ich möchte das Embedded-Tag hier halten, auf der Suche nach "Jetty Embedded" ist, was Menschen tun. –

+0

Das eingebettete Tag ist für Software auf Geräten, diese Frage passt nicht. – starblue

+8

@Starblue Wer sagt, Embedded ist "für Software, die auf Geräten läuft" und nur dafür? Tags sind für Sets, Sets können mehrere Bereiche abdecken (ist 'Compiler' nur für, sagen wir, Javac? Sicherlich nicht). Fügen Sie also weitere Einschränkungen hinzu, um die Schnittmenge zu erhalten, wenn Sie Dinge einschränken möchten. Und weil "embeded" für einbindbare Container wie Jetty, Jboss, GlassFish in der Java-Welt verwendet wird (wie Google deutlich zeigt, zB http://www.google.com/search?q=jetty+embedded), weil EJB3. 1 hat eine "Embedded-API", ich würde gerne in der Lage sein, auf Anlegesteg + Embedded, Glassfish + Embedded, Ejb + Embedded, etc. –

Antwort

22

i Anlegesteg eingebettet verwenden würde, wenn das Ziel, eine eigenständige Anwendung zu erstellen, in dem Anlegesteg nur eine der Komponenten (zum Beispiel in einem OSGi-Containern). Wenn Sie nur ein paar Kriegsschiffe einsetzen möchten, ist eine Standard-Jetty-Installation vorzuziehen. Ich glaube nicht, dass die Auswahl davon abhängt, ob Sie mehr als eine Webanwendung bereitstellen möchten. Wenn Sie den Jetty einbetten, müssen Sie sich selbst in Ihren Code einarbeiten.

+0

In welchen Bereichen können Sie jedoch einen Jetty-Webserver über einen vollständigen Tomcat-WebServer verwenden? – Franklin

+5

Jetty und Tomcat sind in Größe und Fähigkeiten vergleichbar. –

17

Embedding Anlegesteg ist praktisch in zwei Fällen Ich bin vertraut mit:

  1. JNI. Es ist viel einfacher sicherzustellen, dass Sie die richtigen Dinge im richtigen Klassenlader haben.

  2. Entwicklung. Es ist viel einfacher, einen eingebetteten Jetty in Eclipse zu starten, als mit den Eclipse-Webtools herumzuspielen und mit Bereitstellungen und Debugger-Attachments umzugehen.

+2

Nicht nur einfacher, aber viel schneller als auch !! – Jacob

9

Werfen Sie einen Blick auf den Servlet-Container Winstone, mit dem Sie eine einzelne WAR-Datei als ausführbaren Jar als unterstützten Anwendungsfall verteilen können. Das ist was Hudson tut.

+0

Winstone wurde seither vom Jenkins (nee Hudson) Projekt geklont und überarbeitet, um Jetty zu umhüllen. http://jenkins-ci.361315.n4.nabble.com/Winstone-is-now-powered-by-Jetty-td4678478.html –