ELOenterprise® ELO Digital Office GmbH Internes Skripting mit Zugriff auf einen WebService Stand: 6.00.088 Inhaltsverzeichnis Internes Skripting mit Zugriff auf einen WebService ................................................................................ 1 Vorwort........................................................................................................................................................ 2 1 Klassen generieren ......................................................................................................................... 2 2 Einbindung der JAR-Datei .............................................................................................................. 2 2.1 Windows ............................................................................................................................... 2 2.2 Webstart ............................................................................................................................... 3 3 Verwendung im Skript .................................................................................................................... 3 ELO Digital Office GmbH, Entwicklungsdokumentation Seite 1 von 3 ELOenterprise® ELO Digital Office GmbH Vorwort Der Zugriff auf einen Web-Service von der Skripting-Schnittstelle des JAVA-Clients erfolgt anhand der „JAXWS“ Technologie. Um das Zugriffsprinzip zu veranschaulichen wurde als Beispiel der Web-Service mit der folgenden Adresse verwendet: http://webservices.iter.dk/calculator.asmx Dieser Web-Service stellt einen einfachen Taschenrechner dar, der zwei Zahlen addiert. In dieser Anleitung wird gezeigt, wie die Webservice-Methode zum Addieren von zwei Zahlen aufgerufen werden kann. Es sind folgende Schritte nötig. 1 Klassen generieren Für den Zugriff auf den Webservice ist es notwendig passende Java-Klassen einmalig lokal zu generieren. Dafür benötigen Sie das JDK Version 1.6 (oder neuer). Die Klassen werden anhand der WSDL-Datei des Web-Services erzeugt, welche eine Beschreibung der vorhandenen Webservice-Methoden enthält. Im bin-Verzeichnis des JDK (z.B. C:\Programme\Java\jdk1.6.0_07\bin) finden sie das JDK-Tool „wsimport“. Der folgende Befehl erzeugt die Klassen: wsimport -d C:\ -keep http://webservices.iter.dk/calculator.asmx?WSDL Die Option „-d <Pfad>“ gibt an in welchem Verzeichnis die Klassen generiert werden. In diesem Beispiel wird dem Laufwerk „C:“ ein Ordner namens „dk“ erstellt, welcher die weitere Klassengierachie enthält. Der Name des erstellten Ordners entspricht dem Namen des obersten Packages der verwendeten JavaKlassenhierarchie. Üblicherweise ist dies ein Länderkürzel, in diesem Fall „dk“ für Dänemark. Die Option „-keep“ generiert zusätzlich den Source-Code (java-Dateien). Dies ist optional, allerdings sind die Java-Dateien sehr hilfreich um einen Einblick in die zur Verfügung stehenden Methoden zu bekommen. Der generierte Ordner muss in eine JAR-Datei gepackt werden. Dies ermöglicht das JDK-Tool jar. In unserem Beispiel packen wir das Verzeichnis „dk“ in Datei „calc.jar“: jar cf calc.jar dk 2 Einbindung der JAR-Datei 2.1 Windows Die JAR-Datei muss im lib-Verzeichnis des Java Client abgelegt werden (z.B. C:\Programme\ELO Java Client\lib). Bei einen Java Client vor 6.00.088 muss die EloClient.bat angepaßt werden. Ersetzen Sie den Inhalt durch: java -Xms200m -Xmx1000m -ms64m -mx256m -cp .;*;lib\* de.elo.client.main.Start Die Einbindung der JAR-Dateien bei einem Start des Client durch EloClient.exe ist ab Version 6.00.088 implementiert. Um die zusätzliche JAR-Datei im lib-Verzeichnis dabei zu berücksichtigen, muss das Setup erneut ausgeführt und der Java Client über den vorhandenen installiert werden. Dadurch wird die zusätzliche JARDatei zusammen mit den ELO-Libraries eingebunden. ELO Digital Office GmbH, Entwicklungsdokumentation Seite 2 von 3 ELOenterprise® 2.2 ELO Digital Office GmbH Webstart Die JAR-Datei muss im lib-Verzeichnis des Java Client Webstart auf dem Server liegen. Zusätzlich benötigen Sie eine weitere JNLP-Datei, in unserem Beispiel calc.jnlp mit folgendem Inhalt: <?xml version="1.0" encoding="utf-8"?> <jnlp spec="1.0+" codebase="http://negril:8080/eloclient/webstart/" href="calc.jnlp"> <information> <title>Calc-Beispiel</title> <vendor>Testfirma</vendor> </information> <resources> <jar href="lib/calc.jar"/> </resources> <component-desc/> </jnlp> Außerdem müssen Sie diese JNLP-Datei in die EloClient.jnlp eintragen. Fügen sie dazu im Abschnitt Resources eine Zeile mit einem Verweis auf die soeben erstellte JNLP-Datei ein: <extension name="calc" href="calc.jnlp"/> 3 Verwendung im Skript Nun können Sie die Klassen im Java-Skript im Client verwenden. Im folgenden Beispiel wird die Funktion add mit dem ScriptButton 6 verwendet: function eloScriptButton6Start() { var service = new Packages.dk.iter.webservices.calculator.Calculator(); var port = service.getCalculatorSoap(); var firstNumber = 2; var secondNumber = 3; var result = port.add(firstNumber, secondNumber); log.debug( "soap: " + result); workspace.showInfoBox( "2+3 ist", result ); } Einen einfacheren Zugriff auf die generierten Klassen können Sie wie auch in Java mit einem importStatement erreichen: importPackage(Packages.dk.iter.webservices.calculator); function eloScriptButton6Start() { var service = new Calculator(); var port = service.getCalculatorSoap(); var firstNumber = 2; var secondNumber = 3; var result = port.add(firstNumber, secondNumber); log.debug( "soap: " + result); workspace.showInfoBox( "2+3 ist", result ); } ELO Digital Office GmbH, Entwicklungsdokumentation Seite 3 von 3