Tomcat 6 Cluster

Die folgende Beschreibung bezieht sich auf Tomcat 6.0.14 mit Java 5. Eeine Anleitung zum Aufbauen eines Tomcat-Clusters mit Session-Replikation ist in der offiziellen Tomca-Dokumentation zu finden: http://tomcat.apache.org/tomcat-6.0-doc/cluster-howto.html Ich beschreibe hier die Probleme auf die gestoßen bin beim Aufbau eines solchen Clusters. Bei einem Cluster werden die HttpSessions auf alle Nodes (Teilnehmer/Server) im Cluster repliziert (kopiert).Continue reading “Tomcat 6 Cluster”

Loadbalancing mit Apache2 + Tomcat 6 + mod_proxy

In dem Blogeintrag Loadbalancing mit Apache2 + Tomcat 6 + mod_jk 1.2.X habe ich beschrieben wie ein Loadbalancing mit dem “mod_jk” Module eingerichtet werden kann. Dieser Blogeintrag verfolgt das gleich Ziel, jedoch nicht mit dem “mod_jk” sondern mit dem “mod_proxy” Modul. Im gegensatz zum “mod_jk” Modul muss das “mod_proxy” Modul nicht von einer externen QuelleContinue reading “Loadbalancing mit Apache2 + Tomcat 6 + mod_proxy”

Multiple MessageBundles in JSF ManagedBeans

In einer bestehenden Web-Applikation, mit MyFaces 1.1.5 wollte ich aus einer MessageBean auf verschiedene MessageBundles zugreifen. Die betroffene Klasse erbt von der BaseBean, welche folgende Methode zur Verfügung stellt: Die faces-config habe ich um zwei weitere ResourceBundles erweitert. In der betroffenen Klasse habe ich über die Methode aus der BaseBean eine Property aufgerufen dien inContinue reading “Multiple MessageBundles in JSF ManagedBeans”

Kompilieren mit Ant

Beim kompilieren mit dem Build-Tool Ant werden oft drei Tasks definiert, preCompile, executeCompiler und postCompile. In dem Task preCompile werden alle Arbeiten erledigt die vor dem Kompiliervorgang statt finden muessen, wie z.B. das Erstellen eines Zielverzeichnisses. Im Task executeCompiler findet das eigentliche Kompilieren statt. Im Task postCompile sind alle Arbeiten beschrieben die nach dem kompilierenContinue reading “Kompilieren mit Ant”

Ant + Tomcat (hotdeploy)

Unter einem hotdeployment versteht man das deployen einer Applikation ohne dabei den Applikationserver/Servletcontainer herunterzufahren. Um mit Ant ein hotdeployment aus einem Tomcat durchfuehren zu koennen, muss vorher Der TCD (Tomcat Client Deployer) heruntergeladen werden, der hier zur Verfuegung steht: http://tomcat.apache.org/download-60.cgi. Die JAR-Files aus dem TCD sollten im Classpath zu finden sein. Die Nachfolgenden Properties solltenContinue reading “Ant + Tomcat (hotdeploy)”

Ant + Tomcat (harddeploy)

Der folgende Eintrag zeigt wie Ant aus einer WebApplikation eine *.war Datei backt und diese auf dem Tomcat deployt. Gehen wir davon aus das vorhergehende Task eine WebApplikation aus einem Svn-Server ausgecheckt und erofolgreich kompiliert haben. Der folgende Task baut eine *.war Datei. Die Attribute “refid” verweisen alle auf “filesets” (siehe Ant-docu). Die eben generiertContinue reading “Ant + Tomcat (harddeploy)”

BuildNumber ohne SvnAnt

Im vorherigen BlogEintrag “BuildNumber mit SvnAnt” habe ich beschrieben wie mit Hilfe von SvnAnt die Revisionsnummer geholt und eine Proterties Datei geschrieben werden kann. Die build.xml aus der Beschreibung habe ich auf meinem MacBook Pro (Mac OS X Tiger) mit Erfolg laufen lassen. Ein Kollege von mir konnte die Tasks ebenfalls erfolgreich auf seinem WindowsContinue reading “BuildNumber ohne SvnAnt”

BuildNumber mit SvnAnt

In dem vorherigen Blogeintrag habe ich beschrieben wie SvnAnt dazu benutzt werden kann die aktuellen Sourcen aus einem Subversion-Server auszuchecken. Vor dem Bauen der Applikation macht es Sinn die aktuelle Revisionsnummer und einen Timestamp in eine Properties Datei zu schreiben. Diese Informationen koennen in einer Web-Applikation im Footer eingeblendet werden. Wenn ein Fehler auftritt, kannContinue reading “BuildNumber mit SvnAnt”

Ant optional Tasks

Die Ant-Task sind in zwei Gruppen aufgeteilt, in die Core-Tasks und in die Optional-Tasks. Eine vollstaendige Auflistung alles Core- und Optional-Task ist in der offiziellen Ant-Docu http://ant.apache.org/manual/ zu finden. Die Optional-Tasks benoetigen alle zusatzliche Bibliotheken wie z.B. ant-apache-oro.jar. Nach der Installtion von Ant auf einem Debian Linux System mit dem Befehl: apt-get install ant stehenContinue reading “Ant optional Tasks”

Ant + Subversion + SvnAnt

SvnAnt ist eine Java-Bibliothek die Ant-Tasks fuer die Vesionsverwaltungs-Software Subversion anbietet. Die Bibliothek kapselt die Moeglichkeiten des Kommandozeilenprogramms “svn” in Ant-Tasks, womit die Kommunikation zwischen Ant und Subversion sehr komfortabel und elegant moeglich ist. SvnAnt benutzt intern die javahl Bibliothek, ein Java Interface fuer die Subversion API, welche direkt zum Subversion Projekt gehoert. Wenn dieContinue reading “Ant + Subversion + SvnAnt”

Ant + Subversion

Subversion ist ein Programm zur Versionskontrolle und der Nachfolger von CVS. Ich habe frueher mit CVS gearbeitet aber seit dem ich Subversion kenne moechte ich nichts mehr von CVS wissen. Das build-tool ant hat fuer Java Entwickler ungefaehr die gleiche Bedeutung wie “make” fuer die C und C++ Entwickler. Mit ant werden Dateien kopiert, JARs,Continue reading “Ant + Subversion”

JasperReports, strech with overflow

In JasperReports hat man oft das Problem das Texte einfach abgeschnitten werden. Wenn ein Textfeld nicht hoch oder breit genug ist, wird abgeschnitten. Das ist das standardverhalten vom Framework. Wenn sich das Feld dem Textinhalt dynamisch anpassen soll muss das Attribut “stretch with overflow” den Wert “true” haben. In dem grafischen Editor iReport muss manContinue reading “JasperReports, strech with overflow”

JavaScript Aufruf aus einer ManagedBean heraus mit IceFaces

Mit der Klasse “com.icesoft.faces.context.effects.JavascriptContext” aus der IceFaces 1.6.2 Bibliothek ist es moeglich aus einer ManagedBean heraus JavaScript Aufrufe zu taetigen. Hier folgt ein Beispielaufruf. JavascriptContext.addJavascriptCall(FacesContext.getCurrentInstance(), “test()”); Der statischen Methode “addJavascriptCall” muss als erster Parameter der aktuelle FacesContext uebergeben werden und als zweiter Parameter die Javascript Methode die aufgerufen werden soll. Die Methode “test()” befindet sich inContinue reading “JavaScript Aufruf aus einer ManagedBean heraus mit IceFaces”

N Tomcats auf einer Maschine

Um zwei oder mehr Tomcats auf der selben Maschine laufen zu lassen muessen die Ports in der angepasst werden, das es sonst zu Portkonflikten kommt. Standardmaessig sind folgende Ports in der server.xml eingetragen. – server port: 8005 – http port: 8080 redirectPort: 8443 – ajp port: 8009 redirectPort: 8443 Wenn ein zweiter Tomcat im ParallelbetriebContinue reading “N Tomcats auf einer Maschine”

Loadbalancing mit Apache2 + Tomcat 6 + mod_jk

Die Nachfolgende Beschreibung zeigt wie ein Apache2 Webserver als Loadbalancer fuer zwei oder mehr Tomcats zu konfigurieren ist. Die Beschreibung bezieht sich wieder auf einen Linux Debian 4.1.X Server mit 2.6.X Kernel, auf dem ein apache2 Webserver, Tomcat 6.0.16 und Java 5.0 installiert und betriebsbereit ist. Die folgende Graphik veranschaulicht die Systemarchitektur die aufgebaut werdenContinue reading “Loadbalancing mit Apache2 + Tomcat 6 + mod_jk”

Dynamischer Zugriff auf i18n.properties mit OGNL in Struts 2

In Struts 2 ist es, wie in jedem anderen guten MVC-Framework auch, sehr einfach moeglich Texte zu lokalisieren. Darunter versteht man in Fachkreisen das Auslagern von Texten aus den JSP-Seiten in Propertie-Dateien. Das bietet den Vorteil der Internationalisierbarkeit. Englische Texte koennen in der Datei “package_en.properties” abgelegt werden und deutsche Texte in der Datei “package_de.properties”. JeContinue reading “Dynamischer Zugriff auf i18n.properties mit OGNL in Struts 2”

Sonderzeichenprobleme in Struts 2

Ich hatte in einer Struts 2 Applikation das Problem das Sonderzeichen, wie öäüÖÄÜß, in einem Texteingabefeld durch Fragezeichen ersetzt wurden. Nachdem das Formular abgeschickt wurde, kamen die Texte aus den Eingabefeldern zwar alle in der Action-Klasse an, jedoch waren alle Sonderzeichen durch Fragezeichen ersetzt. Das Problem ist relative einfache zu beheben. Die JSP-Dateien sollten alleContinue reading “Sonderzeichenprobleme in Struts 2”

JasperReports, NoClassDefFoundError: org/apache/commons/javaflow/bytecode/Continuable

Neulich habe ich mir JasperReports 2.0.4 und iReport 2.0.4 runtergeladen. Ich habe mir mit iReport einen Report zusammengeklickt und aus iReport heraus den Report compiliert. Nachdem ich die compilierte Datei in mein Eclipse-Projekt kopiert habe und diese in meinem Programm verwenden wollte, erhielt ich die folgende Exception. java.lang.NoClassDefFoundError: org/apache/commons/javaflow/bytecode/Continuable at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:675) atContinue reading “JasperReports, NoClassDefFoundError: org/apache/commons/javaflow/bytecode/Continuable”

Startprobleme mit Eclipse 3.3.1.1 unter Windows

Die Eclipseversion 3.3.1.1 fuer Windows will auf manchen Rechnern einfach nicht so recht starten. Statt dem gewohnten Startbildschirm kommt folgende Fehlermeldung. Dieser Fehler entsteht wenn Eclipse keine aktuelle Java Version finden kann. Eclipse 3.3.1.1 braucht mindestens Java 5.0. Den Fehler kann man sehr leicht beheben in dem man als Startparameter den Pfad zu einer aktuellenContinue reading “Startprobleme mit Eclipse 3.3.1.1 unter Windows”

Eclipse startparameter unter Mac OS X

Nachdem Eclipse runtergeladen und entpackt wurde, muss man in das entsprechende Verzeichnis navigieren, am Besten in der Kommandozeile. Hier befindet sich eine Datei mit dem Namen “Eclipse.app”. Mit folgendem Kommando lassen sich die Startparameter edietieren: emacs Eclipse.app/Contents/MacOS/eclipse.ini Der Befehl oeffnet die eclipse.ini Datei im Emacs-Editor. Meine eclipse.ini sieht wie folgt aus: -showsplash org.eclipse.platform -vmargs -Xdock:icon=../Resources/Eclipse.icnsContinue reading “Eclipse startparameter unter Mac OS X”