Spring 3, Hibernate 4 und Wicket 6: ein starkes Gespann

Ohne Vorkenntnisse ist es gar nicht so einfach, eine Web-Anwendung mit Spring, Hibernate und Wicket aufzusetzen. Dabei reichen dafür nur wenige Zeilen Java-Code.

Im Laufe des Jahre sind im Spring-Framework verschiedene Varianten entstanden, wie man eine Web-Anwendung aufsetzt. Inzwischen ist es möglich, auf externe XML-Konfigurationsdateien vollständig zu verzichten. Wie man konkret vorgeht, eine Spring-Anwendung mit Hibernate und Wicket aufzusetzen, zeigt dieser Artikel. Weiter lesen…

Speicherverbrauch von JEE-Anwendungen: Ein Beispiel aus der Praxis

JPA bietet viel Komfort beim Laden und Bearbeiten von Daten aus einer relationalen Datenbank. Nur darf man bei allem Komfort nicht vergessen, dass bei jeder Operation hinter den Kulissen viel geschieht. Am Beispiel von EclipseLink in einer Wicket-Anwendung zeigt sich, dass man beim Thema Speicherverbrauch auf größere Überraschungen stoßen kann.

Der Ausgangspunkt dieser Geschichte sind OutOfMemoryExceptions, die eine Web-Anwendung nach einigen Tagen Betriebsdauer warf. Ein Blick per JConsole in das Innere der Anwendung zeigte schnell, dass die durchschnittliche Session eines Besuchers knapp ein Megabyte groß war: bei vielen Besuchern ein extrem hohen Wert. Wie konnte das geschehen? Weiter lesen…

Migration zu Apache Wicket 6: Was ist zu tun?

Apache Wicket hat viele Stärken. API-Kompatibilität zwischen den großen Versionsnummern gehört leider nicht dazu! Was muss man wissen, wenn man ein bestehendes Projekt zu Wicket 6 migrieren möchte?

Der Versionssprung von Wicket 1.4 zu Wicket 1.5 hatte schon für viel Arbeit gesorgt. Die Entwickler hatten nicht nur neue Funktionen hinzugefügt, sondern die API teilweise erheblich verändert haben. Der Wechsel von Wicket 1.5 zu Wicket 6 ist etwas leichter, doch es gibt erneut viel zu tun. Weiter lesen…

JEE 6 und die Applikationsserver – ein Blick aus zwei Winkeln

JEE 6 ist eine ausgereifte, jedoch sehr komplexe Technologie. Vor allem der Betrieb eines Applikationsservers bringt eine erhebliche Komplexität mit sich. Was bedeutet der Einsatz eines JEE 6-Applikationsservers, vor allem im Zusammspiel von Architekten und Administratoren?

In einem früheren Beitrag habe ich argumentiert, dass ein Applikationsserver wie z.B. Glassfish zwar hilft, ein Projekt schnell zu starten. Langfristig jedoch erschweren JEE-Applikationsserver die Wartung und Weiterentwicklung eines Systems, vor allem, wenn sie aktualisiert werden – und mit ihnen die ganze technologische Basis eines Systems.

Meine Argumente möchte ich nun etwas vertiefen und einen weiteren Blickwinkel hinzufügen. Weiter lesen…

Mocks für die Frontend-Entwicklung – Teil 2

Der erste Teil dieses Artikels hat gezeigt, wie Mock-Objekte prinzipiell das Leben von Java-Web-Entwickler erleichtern. Nun folgt ein Beispiel aus der Praxis.

Dass die durchgängige Entwicklung von Mock-Objekten relativ viel Arbeit bedeutet, wurde schon im ersten Teil erwähnt. Umso wichtiger ist es, dass die dafür notwendige technische Infrastruktur möglichst einfach umzusetzen ist. Weiter lesen…

Einfacher Testen mit einem Fake-SMTP-Server

Das Versenden einer E-Mail ist ein wichtiger Bestandteil vieler Geschäftsprozesse. Leider ist es gar nicht so einfach, einen Service, der eine E-Mail verschickt, durch einen Unit-Test zu überprüfen. Mock-Objekte helfen zwar weiter, lassen aber offen, ob eine E-Mail wirklich versendet werden kann. Was kann man sonst tun?

Die meines Wissens beste Alternative ist, E-Mails von der Anwendung versenden zu lassen und im Unit-Test zu prüfen, ob eine E-Mail erfolgreich zugestellt worden ist. Dazu eignen sich hervorragend Fake-SMTP-Server. Weiter lesen…

JEE 6: Keine schlechte Technologie, aber…

Seit der Veröffentlichung von JEE 6 scheinen die Befürworter des JEE-Standards gegenüber den Anhängern der Spring-Welt im Vorteil zu sein. Schließlich ist die JEE-Plattform inzwischen technologisch ausgereift. Da stellt sich die Frage, warum man von diesem Standard abweichen soll.

Konkurrenz zwischen verschiedenen Konzepten führt meistens zu immer besseren Lösungen auf beiden Seiten. Daher kann man als Java-Entwickler froh sein, dass es in der Java-Welt viele gute Produkte gibt. In der Welt der Frameworks für die Enterprise-Entwicklung konkurrieren derzeit vor allem JEE 6 und das Spring-Ökosystem. Und natürlich streiten die Befürworter beider Lager mit Vehemenz, welche Technologie die bessere ist. Weiter lesen…

Tücken der Stapelverarbeitung mit JPA

Ist es möglich, eine komplexe Stapelverarbeitung um den Faktor 20 zu beschleunigen, einzig durch Hinzufügen einer Zeile Code? Ja – zumindest dann, wenn man zuvor diese Zeile vergessen und dadurch einen Performanceeinbruch um den Faktor 20 erlitten hat.

Manchmal ist es schon erstaunlich, welche Auswirkungen kleine Änderungen haben. Aber der Reihe nach und zum Mitdenken – vielleicht kommt jemand schon vor dem Ende des Artikels auf die Lösung… Weiter lesen…