Zitat Zitat von KM
Wenn Du aber auch einen Hinweis für mich hast, wie ich das unter Tomcat laufen lassen kann (ohne eine EXE zu erstellen), wäre ich Dir auch sehr dankbar. Wenn das ohne EXE ginge, wäre es mir sogar lieber als die Variante mit dem Windows-Dienst.
Ich noch meine Erfahrungen zu den einzelnen Varianten - auch ich bevorzuge die Tomcat-Variante.


zum GCJ:
  • habe ich getestet und stufe das als Projekt im Betastadium ein. Vor allem wenn man viele fremde JAR's einbindet kann es mühsam werden.
  • Weiters benötigt man eine Linuxumgebung unter Windows (z.B. cygwin oder miniGW) damit gcj auch funktioniert. Bei cygwin muss man dann noch ein DLL mitgeben.
  • Selbst wenn man ein Exe hinbekommt, ist es nicht sicher, dass die Sache auch funkioniert.
  • Schneller ist nur das Startverhalten, der Rest ist langsamer als normales Java.
  • Das exe braucht zur Laufzeit aber weniger Hauptspeicher, als eine JVM.
--> zuviel "gefrickel"

zu den Exe-Wrappern:
  • Von den exe-Wrappern verwende ich auch JSmooth.
  • Vorteile:
  • eigenes Programmsymbol
  • eigener Programmname in Taskmanager (nicht javaw)
  • kein Zip-Programm welche sich auf einmal die jar-Endung schnappt un den Start verhindert
  • --> verwende ich allerdings nur für kleine GUI Programme, nicht für Dienste

    zu den Java Service Wrappern:
  • Hier habe ich den Open Source "Java Service Wrapper" getestet. http://sourceforge.net/projects/wrapper/
  • Hat prinzipiell funktioniert, aber die Vorteile von Tomcat (Stichwort: Wartung über Web) zogen doch "besser"
zum Tomcat:
  • Ich verwende hier Tomcat 5.5, mit der JRE 1.5
Vorteile:
  • Statusabfrage, Start/Stop - alles über Web (Standardport 8080) machbar
  • Auch das Deployen ist über Web machbar (war-Datei über den Manager der Weboberfläche hochladen und installieren)
  • kein extra Aufwand für das Verpacken (wie bei JSmooth oder den Service Wrapper) - einfach in Eclipse ein war-File exportieren
  • in meiner Firmenumgebung: Javadienste im Tomcat sind überall (Windows, Linux) gleich zu starten bzw. zu beenden
  • Mit Webprogrammierung auch Log und Konfiguration der Applikation über Web möglich.
Kleiner Crashkurs für Tomcat/Web

Zur Installation:
Ab der Version 5.5 bringt Tomcat einen eigenen Compiler mit. Damit reicht eine Java Runtime (ab JRE 1.5) aus. Das Installfile vom Tomcat hat gerade mal 5.5 MB und ist auch schnell installiert. Im Setupprogramm kann man dann auch sagen, ob Tomcat als Dienst laufen soll.

Wenn der Tomcat gestartet ist, geht es über die Weboberfläche weiter:

http://localhost:8080/ oder die http://ip-adresse:8080/ von einem anderen PC

Dort klickt man auf den Manager, und man muss ein Passwort eingeben (Standard ist glaube ich manager/manager oder tomcat/tomcat).

Installation der Applikation:
Unter:
Lokale WAR Datei zur Installation hochladen


auf dursuchen und das lokale war-File auf den Server uploaden und anschließend mit "Installieren" beenden --> das war es in vielen Fällen schon.

War-File mit Eclipse (inkl. WST) erzeugen
Wenn man neues Webprojekt erzeugt, wird automatisch die ganze Struktur angelegt. Die Javasourcen liegen wie gewohnt unter src.

Im Verzeichnis Web-Content/WEB-INF liegt die Datei web.xml. Dort muss jetzt dein Startprogramm eingetragen werden. Entweder so, wie es von Dieter beschrieben wurde, oder auch als Listener - was ich persönlich bevorzuge, da man hier auch das Ende mitbekommt:

in die web.xml einfügen:
Code:
<listener>
           <listener-class>com.at.od.web.ehkat.DbStarter</listener-class>
    </listener>
Die Klasse schaut dann so aus:

Code:
public class DbStarter implements ServletContextListener {
   
    public void contextInitialized(ServletContextEvent servletContextEvent) {
    // Hier den Dienst als Thread starten
    }

public void contextDestroyed(ServletContextEvent servletContextEvent) {
   // Hier den Thread wieder beenden
    }
}
Für zusätzlich benötige fremde Jar-Bibliotheken gibt es 2 Möglichkeiten:
1.) Die Jar-Dateien in die Bibliothek WEB-INF/lib kopieren (die Dateien aus dem Explorer in das Verzeichnis WEB-INB/lib in der Eclipse-Umgebung kopieren.

2.) Häufig gemeinsame Bibliotheken kann man auch im tomcat unter:
...Tomcat 5.5\shared\lib ablegen. Damit stehen diese jars allen Applikationen zur Verfügung.

Beim Export gibt es unter "Web" die Auswahl War-File. Das damit erstellte war-File kann man dann wie oben beschrieben auf den Tomcatserver deployen.

Start/Stop/Entfernen und neu Installieren läuft alles über die Weboberfläche des Managers.