Web-Anwendungen mit EclipseIDE entwickeln #
Wer sich mit Java (bzw. JavaUnterDebian) beschäftigt, kommt irgenwann auch mal auf die Idee, seine Applikation mit einer Web-Oberfläche zu versehen. Auch mir ist es so gegangen und deshalb habe ich hier alles dokumentiert, was ich wissen musste, bis ich die erste Web-Applikation mit der EclipseIDE erstellt hatte und im Browser angezeigt hatte.
Der klassische Ansatz ist CGI (Common Gateway Interface), das für Java-Programme eigentlich recht wenig taugt. Im Gegensatz zu C- oder Perl-Programmen, die traditionell per CGI aufgerufen werden, hat Java einen sehr großen Overhead, wenn ein Programm gestartet wird. Daher empfiehlt es sich, eine Applikation als Server fest im Speicher zu haben und bei einem Seitenaufruf eine entsprechende Funktion aufzurufen. (Dies ähnelt dem Vorgehen bei mod_perl, das ja auch nicht das normale CGI benutzt.)
In Java gibt es nun einen Standard, wie dieses abzulaufen hat. Als Container nimmt man dabei den Tomcat. Tomcat ist eine Art Webserver in Java. Er kann während der Laufzeit dynamisch Java-Klassen laden, die sich dann mit einzelnen Seitenaufrufen befassen können. Diese Klassen nennt man "Servlets". Des weiteren ist es sinnvoll, sich mit Ant auszukennen (eine Art "make" für Java), um Webapplikationen zusammenzustellen und zu installieren.
Dokumentation zum Thema #
Eine wunderschöne Einführung ins Thema bietet das offizielle JavaEE5 Tutorial von Sun. Das ist zwar eine ganze Menge, aber wenn man gemerkt hat, was man lesen muss und was nicht, kann es sehr hilfreich sein. Die Servlet Spezifikation kann man downloaden. Eine HTML-Version habe ich im Netz nicht gefunden. Wichtiger ist aber eigentlich die Servlet-API. Am meisten geholfen hat mir jedoch die Tomcat Dokumentation. Evtl. sollte man sich vorher mit Ant vertraut machen, das man eigentlich immer braucht, wenn man nicht gerade Eclipse benutzt, was einem alles rund um die Projektverwaltung abnimmt.
Tomcat installieren #
Siehe die Installationsanleitung auf der Seite TomcatUnterDebian sowie ggf. auf der Seite TomcatSSL (zur https-Unterstützung).
Erstellung einer Applikation "von Hand" #
Es gibt verschiedene Wege, eine Applikation zu erstellen:
Zuerstmal kann man dies "von Hand" machen. Dies ist nötig, wenn man das "Web Standards Tools (WST)" Plugin in Eclipse nicht installiert hat (wofür es allerdings heutzutage keinen vernünftigen Grund mehr gibt). Dennoch ist die Seite WebAnwendungenMitEclipse.EigenesDateiLayout vielleicht für den einen oder anderen lehrreich.
Einen zweiten Weg hat ThomasBayen im TomcatServletTutorial beschritten. Hierbei wird auch das WST nicht benutzt, allerdings ist das Tutorial sehr einfach und kurz, so daß es sicherlich auch hilfreich ist.
Erstellung einer Applikation mit dem WST #
Dies ist wohl spätestens seit Eclipse 3.2 (das durch Callisto die Installation des WST quasi zum Standard macht) der "normale" Weg, um Webanwendungen mit Eclipse zu entwickeln.
... to be continued
Debugging #
Das schönste an Tomcat und Eclipse ist die Tatsache, daß man ganz einfach laufende Webapplikationen debuggen kann.
eigenständig laufender Tomcat #
Man kann den Debugger auch an einen bereits (produktiv) laufenden Server andocken. Dazu startet man Tomcat mit einer besonderen Option. In "/etc/init.d/tomcat4" sucht man die Stelle, wo der "$DAEMON"-Befehl (letztlich das catalina-Skript) mit dem Parameter "start" aufgerufen wird. Aus "start" macht man einfach "jpda start". Nun läuft der Tomcat mit einem laufenden Debugger. Dies erkennt man auch an einem offenen Port 8000. (Achtung! Dies kann logischerweise ein Sicherheitsloch darstellen und macht Tomcat wahrscheinlich auch nicht gerade schneller)
Nun geht man in Eclipse nach "Run" -> "Debug...", wählt "Remote Java Applications" aus und wählt "new". Den Rest stellt man entsprechend ein. Ein Klick auf OK und der Debugger ist verbunden. Nun kann man Breakpoints setzen, ruft eine Seite im Webbrowser auf und voila! öffnet sich der Debugger im Eclipse!