2013-12-23 11 views
10

Ich arbeite an einem neuen Projekt, das eine Webanwendung mit einem Front-End-UI und einem Back-End-Webdienst wäre. Ich begann zu prüfen, welche Server wie Tomcat/Jetty zu verwenden und so .. Ich bemerkte auch, dass es eine eingebettete Version dieser HTTP-Server gibt. Ich verstehe nicht, wann ich eine eingebettete Version für eine eigenständige Version verwenden soll. Ich habe versucht zu googeln aber konnte keine überzeugende Antwort finden, also würde mich freuen wenn mir jemand den Anwendungsfall für einen Embedded Server erklären würde. Danke im Voraus.Embedded vs Stand alone Tomcat (HTTP) -Server

Antwort

9

Ich habe embedded-jetty für eine Webanwendung verwendet. Der Grund, warum ich verwendet habe, war, dass ich keinen separaten Webserver für nur eine App einrichten wollte. Also habe ich ein einfaches Java-Programm mit eingebettetem Jetty erstellt und alle Servereigenschaften über Java-Code konfiguriert. Jetzt kann ich dieses Programm auf jedem Computer ausführen, ohne dass der Webserver installiert ist, und es wird als Web-App auf einem Server ausgeführt. Ich kann jedem Port und Programm viele-zu-viele Kontext/Servlet-Mapping darin zuordnen.

+0

Hmm, eingebettete Server wären hilfreich, wenn ich den Host während einer Entwicklungsphase verändern würde. Es gibt also keinen Unterschied in der Einfachheit der Bereitstellung und beim Testen von Änderungen. – broun

+0

Hot-Swaping ist in Embedded-Jetty, das ist, was ich überprüft habe, aber über andere Server-Eigenschaften (die ich vielleicht nicht einmal weiß) habe ich nicht überprüft. – Rizstien

13

Eingebettete Server sind nützlich, wenn Sie Ihre Anwendung als Betriebssystemprozess betrachten und mit etwas wie java -jar youapp.jar gestartet werden. Hier ist es nicht notwendig, die Box vorab mit einer bestimmten Version des App-Servers, sagen wir Tomcat, einzurichten. Solche Anwendungen können vom Endbenutzer ausgeführt werden, ohne dass eine weitere Installation und Konfiguration des Anwendungsservers erforderlich ist.

Anwendungen wie Jenkins zum Beispiel profitieren enorm von solchen Verpackungen. Ein anderes Szenario ist die Bereitstellung auf Cloud-Services wie Heroku. Sie wickeln den App-Server in Ihrem jar auf. Sie müssen den Server nicht in solchen Cloud-Boxen installieren.

Hier im Wesentlichen einzelne Web-App läuft auf gegebenen Embedded-Server. Wenn Sie jedoch zwei Web-Apps auf zwei Kontexten installieren möchten, ist der eingebettete App-Server keine gute Option für Sie.

+1

Ich verstehe, es ist ein alter Artikel, aber dieser Link kann anderen helfen, wie ich auf die gleiche Frage stieß ** [Anwendungsserver - Sort of Dead] (http://www.beyondjava.net/blog/application-servers -sort-de-dead /) ** – Sategroup