= 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 [http://jakarta.apache.org/tomcat/
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 [http://ant.apache.org/ 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
[http://java.sun.com/javaee/5/docs/tutorial/doc/ 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
[http://java.sun.com/products/servlet/download.html Servlet
Spezifikation] kann man downloaden. Eine HTML-Version habe ich im
Netz nicht gefunden. Wichtiger ist aber eigentlich die
[http://tomcat.apache.org/tomcat-5.5-doc/servletapi/index.html
Servlet-API]. Am meisten geholfen hat mir jedoch die
[http://tomcat.apache.org/tomcat-5.5-doc/index.html 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.

== [http://jakarta.apache.org/tomcat/ 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!

[{Tag Java Eclipse Tomcat Apache}]