Error listenerStart

Beim Aufsetzen von Projekten mit BlazeDS und Spring bin ich häufiger über einen Fehler gestoßen, der nicht sehr aussagekräftig ist. Die Suche im WWW war dabei fast nie eine Hilfe, deswegen habe ich dem Error listenerStart einen eigenen Eintrag gewidmet, in der Hoffnung, das Andere mehr damit anfangen können als ich mit den Ergebnissen, die ich zu jener Zeit gefunden habe.

Der Fehler manifestiert sich folgendermassen in der Standardausgabe des Tomcat-Servers:

20.06.2008 09:46:15 org.apache.catalina.core.StandardContext start
SCHWERWIEGEND: Error listenerStart
20.06.2008 09:46:15 org.apache.catalina.core.StandardContext start
SCHWERWIEGEND: Context [/mein_projekt] startup failed due to previous errors
20.06.2008 09:46:15 org.apache.coyote.http11.Http11Protocol start

In vielen Fällen tritt der Fehler dann auf, wenn Konfigurationsdateien, welche direkt Spring betreffen syntaktische Fehler beinhalten. Hier am Beispiel der Datei contextConfiguration.xml welche über

<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/contextConfiguration.xml</param-value>
</context-param>

eingebunden wird. Ist beispielsweise die Definition einer SpringBean nicht in korrektem XML angegeben, tritt der Fehler Error listenerStart auf. Weitere Ursachen können fehlende Treiber sein, die sich nicht im entsprechenden Verzeichniss finden. Ein Kandidat dafür könnte der Treiber zur Datenbank oder andere fehlende jar’s sein.

In jedem Fall lohnt sich der Blick in die log-Dateien im /tomcat/logs Verzeichniss, dort werden zumindest syntaktische Fehler angezeigt. Um dafür die Genauigkeit der Fehlerausgabe einzustellen kann man im /tomcat/conf Verzeichniss die Datei logging.properties entsprechend anpassen.

BlazeDS und Spring

Durch BlazeDS ist es möglich Flex-Anwendungen mit einem Applikationsserver wie Tomcat sprechen zu lassen. Von Haus aus läuft auf Tomcat zunächst einmal normales Java.

Die Verwendung des Java-Frameworks Spring erleichtert dabei auf der Serverseite alltägliche Arbeiten wie die Verbindung zu einer Datenbank oder den Mail-Versand. Würde man ohne die Hilfe von Spring auf eine Datenbank zugreifen, müsste man sich die Datenbank-Abstraktions-Schicht selbst implementieren. Diese Funktionalität ersetzt Spring beispielsweise so, das lediglich die Konfiguration des Datenbankzugangs vorgenommen werden muss, und dann mit wenigen Zeilen Java-Code die Datenbankverbindung steht. Damit das funktioniert muss man sich noch den zu der gewünschten Datenbank passenden JDBC-Treiber suchen (im Falle von MySQL wäre das der MySQL-Connector) und zu den Libraries in den Container legen. Zur Verwendung der Mailfunktionalitäten, bietet Spring Mail-Templates für den Versand normaler Mails, sowie von Mime-Mails mit Anhängen.

Um zu verstehen wie Spring arbeitet und welche Möglichkeiten sich mit Spring bieten lohnt sich in jedem Fall ein Blick auf die umfangreiche Dokumentation.

Echtzeit Datenvisualisierung mit BlazeDS

BlazeDS ist eine serverseitige Technologie die auf einem J2EE-Applikationsserver wie Apache Tomcat aufsetzt. BlazeDS bietet viele Möglichkeiten direkt vom Server Funktionen auszuführen, die mit Standard-Servertechnologien wie Apache in Verbindung mit PHP nicht, oder nur mit großem Aufwand möglich wären. Hier bietet BlazeDS z.B. out of the box die Synchronisation von Webclient und Datenbank in Echtzeit. Das heißt, trägt ein User über eine Applikation einen Wert in die Datenbank sehen alle andere User die ebenfalls die Applikation geöffnet binnen unter einer Sekunden die Aktualisierung der Daten. BlazeDS stellt die Brücke zu JAVA dar. Neben dem klassischen JDBC ist es so auch möglich über RemoteObjects Classen in Java zu schreiben, die dann direkt von Flex aufgerufen werden können. Somit ist dem Funktionsumfang fast keine Grenze gesetzt. BlazeDS unterliegt hier der Open-Source-Lizenz LPGL v3.