Posts mit dem Label Glassfish werden angezeigt. Alle Posts anzeigen
Posts mit dem Label Glassfish werden angezeigt. Alle Posts anzeigen

Mittwoch, 4. April 2012

Glassfish Cluster Konfigurieren und Servlet deployen

Bislang lief das Beispiel-Servlet in einem ungeclusterten Glassfish Server. Jetzt soll das selbe Servlet im Cluster deployed werden. Hierzu muss zunächst ein Cluster über die Admin-Console (http://localhost:4848/common/index.jsf) konfiguriert werden.


Hierzu unter Clusters den 'New'-Button klicken


Im dem erscheinenden Dialog bekommt der Cluster einen Namen ("cluster1") und es können gleich zwei Instanzen (entsprechend den Managed Servern im WLS) angelegt werden. 'OK' beendet den Dialog.


Der Cluster muss vor der Benutzung  noch gestartet werden. Hierzu wird der Haken vor 'cluster1' gesetzt und via 'Start Cluster' der Cluster gestartet.


Per Klick links im Baum auf 'Clusters', dann rechts auf den Tab 'Instances' werden die beiden gerade konfigurierten Instanzen im Status 'Running' angezeigt.


Zurück in NetBeans wird zur Sicherheit ein kompletter Build des Projekts durchgeführt (Shift+F11).


Das Deployment auf den Cluster per GUI wird von NetBeans nicht unterstützt. Daher erfolgt das Deployment aus der Admin Console. Links im Baum auf 'cluster1', dann rechts auf den Tab 'Applications' und den Button 'Deploy' klicken.


Über den Browse-Button wird die .war-Datei ausgewählt, z.B. D:\Project\NetBeansProjects\SimpleCluster\dist\SimpleCluster.war. Der Type wird gesetzt auf 'Web Application'. Deployed wird mit 'OK'.


Die Anwendung 'SimpleCluster' wird jetzt unter 'Applications' angezeigt. Per Klick auf den Anwendungsnamen geht es in die Details.


Hier werden weitere Details zu der Web-Application angezeigt. über den 'Launch'-Link lässt sich die Anwendung ausführen.


In einem neuen Browser-Fenster werden die verschiedenen Links zur Anwendung angezeigt. Per Klick auf einen davon gelangt man auf die jeweilige Seite.


Es wird zunächst die Default-Seite index.jsp angezeigt. Um auf das Servlet zu kommen, wird an die URL der Name des Servlets angehängt, in diesem Fall ist die komplette URL also http://localhost:28080/SimpleCluster/Simple.


Über mehrmaliges Neuladen werden die bisherigen Aufrufe hochgezählt.


In einem zweiten Browser kann die gleiche URL auf dem Port der jeweils anderen Instanz geöffnet werden. Somit lassen sich beide Zähler unabhängig voneinander hochzählen.

Damit ist der Glassfish-Cluster aufgesetzt und die Anwendung in beide Instanzen deployed.

Das Loadbalancing über den Apache funktioniert grundsätzlich analog zum Loadbalancing des WebLogic Server. Allerdings ist das mod_loadbalancer.so des Glassfish Servers zwar bereits für den Oracle HTTP Server zertifiziert, es gibt aber noch keine automatisierte Installationsroutine.
Die manuelle Installation ist beschrieben unter http://docs.oracle.com/cd/E18930_01/html/821-2426/gktke.html#scrolltoc, aber nicht Bestandteil dieses Tutorials.

Montag, 26. März 2012

Servlet auf Glassfish deployen

Das gleiche Servlet wie im JDeveloper/WebLogic-Beispiel soll aus Netbeans nun in den Glassfish Server deployed werden. Die Software und eine Installationsanleitung für beide Produkte findet sich z.B. unter http://netbeans.org/community/releases/71/.

Als erstes wird ein neues Projekt angelegt via File|New Project...

Benötigt wird eine 'Web Application' unter 'Java Web'

Die Anwendung bekommt einen Namen, z.B. SimpleCluster

Defaults belassen und 'Next'

Weitere Frameworks werden nicht benötigt, 'Finish'

NetBeans öffnet das Projekt und die index.jsp im Quellcode. Diese wird nicht benötigt und kann geschlossen werden.
Testweise kann das Projekt gestartet werden.


Ähnlich der JDeveloper/WebLogic-Kombination startet NetBeans im Hintergrund einen Glassfish Server und deployed die Anwendung.
Wenn alles funktioniert hat, meldet sich die index.jsp mit 'Hello World!'

Um das Servlet aus dem WebLogic-Beispiel zu übernehmen wird jetzt das Source-Verzeichnis (z.B. d:\project\SimpleCluster\simple\src\simple) in das entsprechende Verzeichnis des NetBeans-Projekts kopiert (hier: d:\project\NetBeansProjects\SimpleCluster\src\java).

NetBeans überwacht die Verzeichnisse, dadurch taucht das Servlet nach Sekunden auch im Projekt auf.

Dem Servlet sollte noch ein URL-Pattern übergeben werden. Das ginge per Deployment Descriptor, eleganter ist aber die Variante per Annotation. Dazu wird über der Klassendefinition folgendes eingefügt:

@WebServlet(name = "Simple", urlPatterns = {"/Simple"})

Das führt allerdings zunächst zu einer Fehlermeldung, zu erkennen an dem Symbol am linken Rand.

Über die angebotene 'Alt-Enter' Kombination erscheint der Vorschlag, die Import-Klausel für die Annotation zu erzeugen. Dieses wird akzeptiert und das Fehlersymbol verschwindet.

Per Rechtsklick auf den Projektnamen und Auswahl von 'Properties' gelangt man in den entsprechenden Dialog. Hier kann unter 'Run' noch die 'Relative URL' auf das Servlet gesetzt werden, in diesem Falle auf 'Simple'.

Per erneutem Klick auf den 'Run'-Button erscheint dann der Browser mit der Ausgabe des Servlets.

Somit wurde das selbe Servlet, welches im WebLogic-Cluster läuft, zunächst auch auf einer einzelnen Instanz im Glassfish ausgeführt.