This blog has moved to
http://blog.matthias-reining.com

Die bestehenden Artikel bleiben vorerst alle bei blogspot. Neue Artikel veröffentliche ich allerdings nur noch auf http://blog.matthias-reining.com

Samstag, 29. November 2008

Web Frontend Entwicklung in einer JavaEE Umgebung | Der „langsame“ JBoss…

Vorab: beim JBoss handelt es sich natürlich nicht um einen langsamen Server! Allerdings das starten und Deployen dauert einfach etwas.

Während der Entwicklung kann dies leicht "nervend" sein. Hier will man bspw. nur mal kurz ein paar ActionKlassen (Struts Framework) ändern und die entsprechenden JSPs anpassen und natürlich gleich im Browser testen – jetzt muss allerdings erst das Paket auf dem Applicationserver deployed werden und … schnarch.

Um hier etwas mehr Schwung bei der Entwicklung unter Eclipse rein zu bekommen, gehe ich bei der Frontend Entwicklung vor allem bei GUI-Spielereien wie folgt vor:

Voraussetzung: Der JBoss Server ist in der Entwicklungsumgebung korrekt eingebunden und alles funktioniert.

In dem Beispiel gehe ich davon aus, dass eine Standard JEE Projektstruktur vorliegt. 3 Projekte: TestProject, TestProjectEJB, TestProjectWeb; die Standardprojekte bei der Anlage über den Eclipse Assistenten.

Die reine GUI Entwicklung sollte aber auch mit dem Tomcat Webserver Server alleine funktionieren. Der JBoss liefert seine Seiten ja ebenfalls über den Tomcat aus.

Apache Tomcat Server in der IDE einrichten
Hierzu muss neben dem JBoss im Eclipse ein zweiter Server eingerichtet werden. Hierzu unter Window->Preferences | Server->Runtime Environments mit Add einen Apache Tomcat Server auswählen. Entsprechende Pfade anpassen und gut – Dieser Server ist nun der Eclipse IDE bekannt.

Neue Runtime Umgebung einrichten
Im nächsten Schritt muss der Tomcat Server als Runtime Umgebung eingerichtet werden. Hier gibt es verschiede Wege, bspw über Run->Run Configurations… Ich bevorzuge allerdings einen anderen Weg.

Hierzu im Tab "Server", in dem bereits der JBoss Server registriert ist, mit der rechten Maustaste einen neuen Server anlegen.


Hier wie im Screenshot gezeigt die "Server runtime environment" auf Apache Tomcat stellen. Im nächsten Tab kann dann das EJB3 Webprojekt dem Tomcat Server hinzugefügt werden.


Mit ‚Add' hier das Beispielprojekt auf die rechte Seite bringen und den Vorgang mit Finish beenden.

Server starten (um diesen direkt eine "Runtime Configuration" zu geben)
Den Server jetzt einmal kurz starten mit click auf das grüne Server-Run Symbol.


Jetzt wurde eine Runtime Configuration automatisch angelegt die wir jetzt nur noch leicht bearbeiten müssen.

Classpath setzen
Die ganzen JBoss spezifischen Klassen sind dem Tomcat noch nicht bekannt. Dies ist aber notwendig, damit der Tomcat bei der Ausführung keine ClassNotFoundException wirft. Dies tritt auf wenn Klassen geladen werden, die APIs verwenden, die der JBoss als ApplicationServer zur Verfügung stellt (JPA Annotations beispielsweise). Die ganzen Container Managed EJBs funktionieren zwar nicht; sollte bei der GUI Entwicklung aber auch nicht unbedingt benötigt werden. Dagegen können alle Persistent Entities, da POJOs, problemlos verwendet werden (diese sind idealerweise auch direkt auf den JSPs eingebunden).

Ggf. kann man sich die Serviceaufrufe der SLSB auch "wegmocken".

Der Classpath muss hier dann wie folgt erweitert werden:

Run->Run Configurations… und dort die neuangelegte Tomcat Runtime Environment selektieren und im Abschnitt "Classpath" unter "User Entries" "Add external JARs" ausfühen


Hier das entsprechende JBoss Verzeichnis lokal auswählen (bei mir D:\jboss\jboss-4.2.3.GA-jdk6\jboss-4.2.3.GA\server\default\lib) und alle jar Files hinzufügen.

Und nochmal!

Anschließend diesen Schritt nochmal mit dem lib Verzeichnis direkt unterhalb des Servers durchführen! (bei mir D:\jboss\jboss-4.2.3.GA-jdk6\jboss-4.2.3.GA\lib).

Und nun das Wichtigste…

Das EJB Projekt selbst muss natürlich auch noch hinzugefügt werden.

Hierzu den Schritt ein weiteres Mal wiederholen, allerdings anstelle eines jar Files "Add Projects…" auswählen


Hier dann das entsprechende EJP Projekt wählen und dann sollten auch alle Pfade gesetzt sein.

Und Los…
Anschließend sollte das Projekt sich über den "schnellen" Tomcat starten lassen. Hier geht nun auch das "schnelle" Hot Code Replacement und ein Serverdurchstarten ist auch in 3 Sekunden erledigt.

In meinem Struts2 Projekt in Verbindung mit EJB3 auf einem JBoss spart das Vorgehen "GUI Entwicklung mit dem Apache Tomcat Server" viel Wartezeit….


 


 

Keine Kommentare:

Kommentar veröffentlichen