Daten anbieten - Webservice

Modul Integration Daten anbieten

1. Allgemeines

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 Portalrecht Webservices 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

<intrexx>/org/<portal>/internal/webservice/provider/axis2/conf/

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:

<transportSender class="org.apache.axis2.transport.http.CommonsHTTPTransportSender" name="https">
	<parameter name="PROTOCOL">HTTP/1.1</parameter>
	<parameter name="Transfer-Encoding">chunked</parameter>
</transportSender>
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.