worum geht es hier eigentlichWie ich oben beschrieben habe, liegt die Stärke von Webservices daran, dass Informationen zwischen unterschiedlichen Plattformen ausgetauscht werden können. Und das ist hier ein Beispiel, in dem eine Java Swing Anwendung auf einen Domino Webservice zugreift. Ich habe jetzt versucht, die Installation des Java Swing Clients möglichst einfach zu machen.
warum ant?So hier ist jetzt next generation der Verteilung von Java Beispielen über Foren.
Es geht mit Ant.
Aber was ist das Problem?
Für Beispiele wie Webservices mit Domino benötigt man eine Menge Zusatzpackages, v.a. wenn ich noch mit neuerem Swing-Zeug rumexperimentiere.
Das heisst für die Leute, die sich das Beispiel anschauen wollen, dass sie diese ganzen langweiligen Schritte wie die ganzen Zusatz-Libraries im Internet aufstöbern, classpath setzen, kompilieren, etc. nachvollziehen müssen.
Für Java gibt es aber ein einfach zu bedienendes Kommando-Zeilen buildtool namens ant.
Dann muß der Benutzer des Beispiels nur noch einen command prompt öffnen zu dem Verzeichnis wechseln, wo das zip file mit meinen Klassen und das build.xml File (s. Attachments) von ant ist und die drei Buchstaben ant eingeben. Den Rest erledigt dann die Ameise. Vor allem wird damit auch dieser Server sehr wenig belastet, weil ant die ganzen jar-Zusatzlibraries von anderen Servern holt.
Wenn die Benutzer ant haben, brauche ich nur eine ant Deskriptor-Datei für den Build und die von mir geproggten unkompilierten Java Source Files in einer Zip Datei posten.
Im Attachment sind diese beiden Dateien.
Um das build.xml File für ant zu benutzen, muß erstmal ant installiert werden.
ant installierenWie ant installieren?
Ganz einfach. Es muß allerdings ein Java Standard Developer kit (j2sdk) auf dem Rechner installiert sein
Hier ist der download.
http://ant.apache.org/Dann müssen noch ein paar Umgebungsvariablen für das OS gesetzt werden:
ANT_HOME -> Das root Verzeichnis von ant (bei mir ist es: C:/ant/apache-ant-1.6.5)
PATH -> das bin Verzeichnis von ant muß hinzugefügt werden: (Bei mir ist es C:/ant/apache-ant-1.6.5/bin)
Ausserdem muß die Umgebungsvariable JAVA_HOME gesetzt sein (bei mir ist es D:\j2sdk1_4_2_05
Vermutlich muß noch das bin Verzeichnis von JAVA_HOME (also %JAVA_HOME%\bin) in der PATH Umgebungsvariable sein. Bin mir aber nicht so 100% sicher.
Ich bin ziemlich windows lastig. Es würde mich freuen, wenn das mal jemand mit Linux ausprobieren könnte. Die Installation von ant wird auf der Webseite von ant (s.o.) beschrieben.
Ihr könnt die korrekte Java und ant Installation testen, indem ihr in den command prompt (cmd, dos-box) javac und danach ant eingibt.
Bei javac wird etwas ausgegeben, dass mit usage: anfängt (dann ist es richtig)
Bei ant wird Buildfile: build xml does not exist! ausgegeben (dann ist es richtig).
Bei unklarheiten posten.
Ant nutzen mit dem geposteten BeispielSchritt 1: Beide hier angehängten Dateien (das zip und die build.xml) einfach in ein beliebiges Verzeichnis kopieren (besser ohne Leerzeichen).
Schritt 2: Mit dem cmd-prompt in das Verzeichnis navigieren (cd Befehl von DOS).
Schritt 3: ant eingeben und Returntaste drücken.
Das ist alles Danach passiert eine Menge (erst werden ein paar Jars aus dem Internet geholt, rumkopiert, Classpath gesetzt, kompiliert und der Client gestartet).
Im CMD-Fenster erscheinen die entsprechenden Meldungen.
Die oben gepostete Notes Datenbank (serverseitige Webservices) muß in dem exakten Pfad wie ich es auch habe erreichbar sein (
http://localhost/webservices/FirstTest.nsf). Das heisst nachtürlich auch: der http Server von Domino muß laufen. Ist dies nicht der FAll, dann startet der Client trotzdem, nur wird dann immer eine Fehlerbox (Verbindung nicht gefunden. Vermutlich läuft der Server nicht) ausgegeben.
Weitere Probleme können auftauchen. Ich hole mir 2 jar-Libraries aus http-Oberflächen von cvs Maschinen. Die haben schon mal Ausfälle. Das wird aber in der Dos-Box gemeldet. Bitte posten bei Problemen. Die meisten jar-libraries lasse ich von einem maven-repository runterladen. Das dürfte sehr stabil sein.
Ok. Wenn ihr Ant startet erscheinen ein paar Meldungen in der DosBox: V.a. der Download dauert ein bischen länger (mit relativ schneller Internet-Verbindung bis zu 4 Minuten). Ant ist schlau genug, dass er merkt, dass bestimmte Dateien schon da sind, so dass beim zweiten starten viele Operationen nicht mehr ausgeführt werden.
Die Meldungen sehen ungefähr so aus:
Am Anfang kommt download und die einzelnen libraries. Das kann je nach Internet-Verbindung ein bischen länger dauern. Z.B. ist axis.jar 1.6 MB groß, xerces 875 kb, looks 329 kb, die restlichen aber deutlich kleiner.
Dann unzip, compile, copy, execute (wesentlich schneller).
Es erscheint dann der Java Client. Eine ca. 100 x 50 Pixel große nett anzuschauende Box. Das Programm ist einfach zu bedienen. In das obere Kästchen ein Land eingeben. Return oder Fragezeichen drücken und Domino sendet dann die Hauptstadt zurück (falls von diesem Land eine als Dokument vorliegt (s. nsf Beispiel oben).
Der Source Code von dem Client selber ist ziemlich übel zusammengeschustert. Aber ich finds erstmal nicht schlimm. Ich bin mit den neuen Möglichkeiten von swing erst noch am experimentieren.
Würde mich freuen, wenn das mal jemand ausprobieren könnte.
Ant ist im Java-Bereich sehr weit verbreitet und viel besser als maven
OOOPS ich stelle gerade fest, dass sich Dateien mit .xml Endungen hier nicht anhängen lassen. Ich nenne die Datei jetzt in build.txt um. Ihr müsst die dann nach dem kopieren wieder in build.xml umbenennen.
Ich hab versucht, die einzelnen Schritte des build.xml ein bischen zu beschreiben:
http://atnotes.de/index.php?topic=26707.msg170000#msg170000Gruß Axel