Aktualisierte Ansicht von Log-Dateien unter Linux

Wenn zum Beispiel ein Application Server wie jboss läuft, kommt man gelegentlich in die Versuchung, sich Log-Ausgaben in realtime anzeigen lassen zu wollen. Dazu kann z.B. des Kommandozeilenprogramms tail verwendet werden. Der folgende Aufruf zeigt die letzten Zeilen der Log-Datei an und aktualisiert die Ansicht, wenn es neue Einträge gibt:

tail -f /JBOSS-HOME/server/default/log/server.log

Der Parameter -f (follow) gibt an, dass die Ausgabe der Datei stattfinden soll, bis sie durch den Benutzer mit Strg+C beendet wird.

java über Kommandozeile auf Linux-Server installieren

Java-Version installieren

Zunächst wird die aktuelle Java-Version (derzeit 1.7.45) heruntergeladen. Der Download kann über die Java-Download-Seite erfolgen, oder mittels folgendem Kommando:
wget --no-cookies --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com" "http://download.oracle.com/otn-pub/java/jdk/7u45-b18/jdk-7u45-linux-i586.tar.gz"

Danach kann Java wie auf http://www.java.com/de/download/help/linux_install.xml beschrieben installiert werden.

Dazu auf der Konsole den Befehl
tar zxvf jdk-7u45-linux-i586.tar.gz
absetzen. Der Benutzer muss sich dazu in einem Verzeichnis befinden, in dem er Schreibrechte hat, siehe dazu http://www.java.com/de/download/help/linux_install.xml#Java for Linux Platforms. Anschließend sollten noch die Pfad-Angaben ergänzt werden.

Jboss-Einrichtung auf Linux-Server

Dieser Artikel beschreibt, wie jboss auf einem Linux-Server (ManagedServer) von domainFactory eingerichtet werden kann. Annahme: der Application Server wird über das Webfrontend im Admin-Bereich der Webverwaltung installiert und muss anschließend konfiguriert werden. Das Zielsystem beinhaltet einen Java-Webservice, welcher mit einer MySQL-Datenbank kommuniziert.

Vorbedingungen:

  • jboss 6.0.0 wurde installiert und gestartet
  • SSH-Zugriff ist möglich
  • Java ist bereits installiert

jboss Application Server und MySQL-Connection einrichten

Nachdem jboss installiert wurde, kann eingetragen werden, dass er automatisch gestartet werden soll. Dies kann im Webfrontend unter Serverkonfiguration->systemSTARTUP erfolgen. Über diesen Menüeintrag kann der Server auch komfortabel gestartet und gestoppt werden.

Die Integration von MySQL erfolgt mittels einer XML-Datei, die im Ordner deploy (JBOSS-HOME/server/default/deploy/) angelegt wird. Der Inhalt kann dabei wie folgt aussehen (andere Einstellungen sind natürlich denkbar):

<?xml version="1.0" encoding="UTF-8"?>
<datasources>
  <local-tx-datasource>
    <jndi-name>mydatasourcename</jndi-name>
    <connection-url>jdbc:mysql://mysql5.servername:3306/database</connection-url>
    <driver-class>com.mysql.jdbc.Driver</driver-class>
    <user-name>db-username</user-name>
    <password>db-password</password>
    <min-pool-size>0</min-pool-size>
    <max-pool-size>5</max-pool-size>
    <idle-timeout-minutes>5</idle-timeout-minutes>
    <exception-sorter-class-name>com.mysql.jdbc.integration.jboss.ExtendedMysqlExceptionSorter</exception-sorter-class-name>
    <valid-connection-checker-class-name>com.mysql.jdbc.integration.jboss.MysqlValidConnectionChecker</valid-connection-checker-class-name>
  </local-tx-datasource>
</datasources>

Die MySQL-Jar-Datei (zum Beispiel mysql-connector-java-5.1.26-bin.jar) muss in den Lib-Ordner gelegt werden. Zunächst platzierte ich die Datei in JBOSS-HOME/server/all/lib/, doch wie sich herausstellte, verursachte dies einen Fehler – dazu gleich mehr.

Die korrekte Einrichtung kann beispielsweise mit der Adminkonsole überprüft werden. Dazu zunächst den Server stoppen und danach wieder starten. In der Adminkonsole unter Resources->Datasources sollte nun die soeben erstellte Datasource zu finden sein. Angenommen jboss läuft auf Port 8080, kann die Adminkonsole mittels lynx mit folgendem Aufruf gestartet werden:
lynx http://localhost:8080
Nach Auswahl von Administration Console (siehe Screenshot), gelangt der Benutzer zur Maske zum Eingeben der Login-Daten. Das Passwort wurde bei der Installation von jboss hinterlegt.

Jboss-Admin-Konsole
Adminkonsole von jboss

Eine War-Datei kann deployed werden, in dem sie in den Ordner JBOSS-HOME/server/default/deploy/ gelegt wird. Beim Deployen der War-Datei bin ich auf ein Problem gestoßen. Obwohl der verwendete MySQL-Treiber zur Datenbank passen sollte, gab es folgende Fehlermeldung:

Throwable while attempting to get a new connection: null: org.jboss.resource.JBossResourceException: Could not create connection; - nested throwable: (org.jboss.resource.JBossResourceException: Apparently wrong driver class specified for URL: class: com.mysql.jdbc.Driver, url: jdbc:mysql://mysql5.servername.de:3306/databasename)

Interessanterweise wurden die Tabellen dennoch richtig angelegt. Um die Fehlermeldung los zu werden, musste die MySQL-Lib in den Ordner JBOSS-HOME/server/default/lib/ verschoben werden.

In der Persistence-Datei muss die MySQL-Verbindung angegeben werden, was in nachfolgendem Code-Ausschnitt zu sehen ist.

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0"
    xmlns="http://java.sun.com/xml/ns/persistence"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
          http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
  <persistence-unit name="persistenceunitname">	
    <jta-data-source>java:/mydatasourcename</jta-data-source> 
    <properties>
    	<property name="hibernate.show_sql" value="true" />
    	<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect" />
    	<property name="hibernate.hbm2ddl.auto" value="create-drop" />
    	<property name="hibernate.connection.useUnicode" value="true" />
		<property name="hibernate.connection.characterEncoding" value="UTF-8" />
    </properties>
  </persistence-unit>
</persistence>

Glassfish-Installation

Im Folgenden habe ich eine kleine Anleitung zusammengetragen, wie der Glassfish Application Server auf einer frischen Suse-Umgebung installiert werden kann. Diese Anleitung ist entstanden, als ein System aufgesetzt wurde, auf dem ein Java-Webservice unter dem Glassfish Application Server und eine PHP-Applikation laufen sollten. Im Artikel sind weitere hilfreiche Seiten mit zusätzlichen Informationen verlinkt.

Kleine Checkliste:

– java jdk 7u21 installiert
– Ordner /usr/glassfishv3/ erstellt
– /etc/profile.local erstellt, Inhalt:
export JAVA_HOME=/usr/java/jdk1.7.0_21
export GLASSFISH_HOME=/usr/glassfishv3/glassfish
export PATH=$JAVA_HOME/bin:$GLASSFISH_HOME/bin:$PATH
– source /etc/profile.local aufgerufen
– glassfish ogs-3.1.2.2.zip runtergeladen und installiert (http://www.iniy.org/?p=275)