Webservices sind Dienste, die Funktionen und Daten über das Internet bereitstellen.
Ähnlich wie bei einer Suchmaschine werden dabei Anfragen von einem Absender gesendet,
der in diesem Fall keine Person, sondern ein Softwareprogramm ist. Der Webservice
liefert die Ergebnisse an das abfragende Programm zurück. Webservices werden
sowohl firmenintern als auch extern zur Verfügung gestellt.
Will man z.B. anhand einer Bankleitzahl den Namen der Bank ermitteln,
kann ein Webservice die gewünschten Daten mit einer Operation ermitteln und liefern.
Die Operationen werden mit WSDL-Dateien (Web Services Description Language) beschrieben.
Der Austausch der Information erfolgt mit XML-Dateien.
Um einen Webservice zu nutzen, muss die URL, mit der der Webservice identifiziert wird,
bekannt sein. Außerdem wird eine Software benötigt, die die gelieferten
Informationen interpretiert. Mit Intrexx können Webservice-Angebote ohne jeden
Programmieraufwand konsumiert und auch eigene Webservices angeboten werden.
Intrexx unterstützt in der aktuellen Version ausschließlich Webservices,
die nach WSI Basic Profile Version 1.1. spezifiziert sind. Informationen zu
diesem Thema finden Sie hier.
2. Webservice anbieten
Ein neuer Webservice kann über das KontextmenüNeuer Webservice erstellt werden.
Bei einem bestehenden Webservice finden Sie im Kontextmenü
weitere Funktionen, die hier
beschrieben sind.
3. Rechte
Für die Konfiguration von Webservices ist das
PortalrechtWebservices anbieten und das Recht am Modul
Werkzeuge erforderlich.
4. HTTPS-Zertifizierung
Im Folgenden wird davon ausgegangen, dass bereits entsprechende Zertifikate
sowie keystore und truststore
vorliegen. Es ist darauf zu achten, dass keystore und
truststore vom Typ Java Keystore
(Dateiendung jks) sind.
4.1. AXIS2 konfigurieren
Um einen Transport per HTTPS einzurichten, müssen Änderungen an der
Axis2-Konfigurationsdatei vorgenommen werden. Wechseln Sie dazu in das Verzeichnis
und öffnen Sie die Datei axis2.xml in einem Texteditor. Suchen Sie nun nach folgendem Eintrag:
<!-- ================================================= -->
<!-- Non-blocking http/s Transport Listener -->
<!-- the non blocking http transport based on HttpCore + NIO extensions -->
<transportReceiver class="de.uplanet.lucy.server.webservice.provider.axis2.transport.nhttp.HttpCore NIOListener" name="http">
<parameter locked="false" name="port">WS_PORT</parameter>
<parameter locked="false" name="non-blocking">true</parameter>
<parameter locked="false" name="hostname">HOST_NAME</parameter>
</transportReceiver>
Unterhalb dieses Eintrags finden Sie das auskommentiertes Element <transportreceiver>. Entfernen Sie die Kommentar-Tags, um den Eintrag zu aktivieren.
<!-- the non blocking https transport based on HttpCore + SSL-NIO extensions -->
<transportReceiver class="de.uplanet.lucy.server.webservice.provider.axis2.transport.nhttp.HttpCore
NIOSSLListener" name="https">
<parameter locked="false" name="port">SSL_WS_PORT</parameter>
<parameter locked="false" name="non-blocking">true</parameter>
<parameter locked="false" name="keystore">
<KeyStore>
<Location>KEYSTORE.jks</Location>
<Type>JKS</Type>
<Password>KEYSTORE_PASSWORD</Password>
<KeyPassword>KEY_PASSWORD</KeyPassword>
</KeyStore>
</parameter>
<parameter locked="false" name="truststore">
<TrustStore>
<Location>TRUSTSTORE.jks</Location>
<Type>JKS</Type>
<Password>TRUSTSTORE_PASSWORD</Password>
</TrustStore>
</parameter>
<parameter name="SSLVerifyClient">require</parameter>
<!--supports optional|require or defaults to none -->
</transportReceiver>
Geben Sie die folgende Werte korrekt an:
Parameter
Beschreibung
SSL_WS_PORT
Port, über den der https-Webservice aufgerufen werden kann.
Es ist darauf zu achten, dass dieser Port vom Port für ungesicherte
Webserviceaufrufe unterscheidet.
KEYSTORE.jks
Pfad zum Keystore im Format JKS. Der Pfad muss relativ zum Verzeichnis
<intrexx>\org\<portal>\internal\webservice\provider\
angegeben werden.
KEYSTORE_PASSWORD
Passwort für den angegebenen Keystore.
KEY_PASSWORD
Passwort für den verwendeten Key.
TRUSTSTORE.jks
Pfad zum Truststore im Format JKS. Der Pfad muss relativ zum Verzeichnis
intrexx>\org\<portal>\internal\webservice\provider\
angegeben werden.
TRUSTSTORE_PASSWORD
Passwort für den angegebenen Truststore.
Wurden die Werte korrekt gesetzt, ist nach folgendem Eintrag zu suchen:
Unterhalb dieses Eintrags ist ein weiteres, momentan noch auskommentiertes
Element <transportsender>. Entfernen Sie die
Kommentar-Tags, um den Eintrag zu aktivieren.
<!-- the non-blocking https transport sender based on HttpCore + NIO SSL extensions-->
<transportSender name="https" class="de.uplanet.lucy.server.webservice.provider.axis2.transport.nhttp.Http
CoreNIOSSLSender">
<parameter name="non-blocking" locked="false">true</parameter>
<parameter name="keystore" locked="false">
<KeyStore>
<Location>KEYSTORE.jks</Location>
<Type>JKS</Type>
<Password>KEYSTORE_PASSWORD</Password>
<KeyPassword>KEY_PASSWORD</KeyPassword>
</KeyStore>
</parameter>
<parameter locked="false" name="truststore">
<TrustStore>
<Location>TRUSTSTORE.jks</Location>
<Type>JKS</Type>
<Password>TRUSTSTORE_PASSWORD</Password>
</TrustStore>
</parameter>
<parameter name="HostnameVerifier">DefaultAndLocalhost</parameter>
;<!--supports Strict|AllowAll|DefaultAndLocalhost or the default if none specified-->
</transportSender>
Geben Sie die folgende Werte korrekt an:
Parameter
Beschreibung
KEYSTORE.jks
Pfad zum Keystore im Format JKS. Der Pfad muss relativ zum Verzeichnis
<intrexx>\org\<portal>\internal\webservice\provider\
angegeben werden.
KEYSTORE_PASSWORD
Passwort für den angegebenen Keystore.
KEY_PASSWORD
Passwort für den verwendeten Key.
TRUSTSTORE.jks
Pfad zum Truststore im Format JKS. Der Pfad muss relativ zum Verzeichnis
<intrexx>\org\<portal>\internal\webservice\provider\
angegeben werden.
TRUSTSTORE_PASSWORD
Passwort für den angegebenen Truststore.
Speichern Sie die Datei und starten Sie anschließend den Portal-Dienst neu.
Rufen Sie den im Browser die WSDL-Datei auf, um die HTTPS-Authentifizierung zu testen.
Achten Sie hierbei auf die Angabe von HTTPS statt HTTP und des Ports. Ist die URL korrekt angegeben,
muss das verwendete Zertifikat akzeptiert werden. Danach wird die WSDL-Datei im Browser angezeigt.