PEGELONLINE Webservice-Archiv User's Guide
Verwendung von PEGELONLINE Webservice-Archiv
in einer beliebigen Systemumgebungin einer Java-Umgebung
in einer PHP-Umgebung
Verwenden von PEGELONLINE Webservice-Archiv in einer beliebigen Systemumgebung
Verwenden Sie die WSDL von PEGELONLINE Webservice-Archiv, um in Ihrer Systemumgebung eine Clientschnittstelle zu erzeugen. Es gibt viele Web Service Frameworks, mit denen meist über die WSDL, Quellcode in der jeweiligen Programmiersprache erzeugt wird. Sie können so entfernte Aufrufe machen, ohne sich um die Erstellung von SOAP-XML kümmern zu müssen. Vorraussetzung ist natürlich immer, dass Ihre Anwendung über HTTP Port 80 Zugang zum Internet hat.Da PEGELONLINE Webservice-Archiv nur über SSL verwendet werden kann, muss der Client für den Aufbau von SSL Verbindungen konfiguriert werden. Siehe dazu die allgemeinen Hinweise zu SSL in der Dokumentation von PEGELONLINE Webservice-Archiv.
Weiterhin muss der Client bei Verwendung der Authentifizierung von PEGELONLINE Webservice-Archiv für HTTP Basic Authentication konfiguriert werden.
Verwenden von PEGELONLINE Webservice-Archiv in einer Java-Umgebung
Wenn Sie PEGELONLINE Webservice-Aktuell in einer Java-Umgebung verwenden werden, so können Sie optional auch unsere bereits erstellten Client-Schnittstellen benutzen. Sie können wahlweise eine Schnittstelle basierend auf dem Java Webservice Developer Pack 2.0 (JWSDP) oder Apache Axis 1.4 verwenden. Vorraussetzung ist eine Java Runtime Environment ab Version 1.5.Downloaden Sie im ersten Schritt eines der beiden ZIP-Archive.
Entpacken Sie das jeweilige Archiv und legen Sie alle dort enthaltenden Bibliotheken im Klassenpfad ab. Neben den erforderlichen Bibliotheken für JWSDP oder AXIS befindet sich in dem Archiv auch die eigentliche Clientimplementation in der jar-Datei pegelonlinewebservice_v2_3_axis|jwspd.jar. Innerhalb dieser jar-Datei ist auch der Quellcode enthalten, der durch JWSDP bzw. Apache AXIS erzeugt wurde.
Sie können eine einfache Abfrage mit folgendem Codefragement durchführen. Der Quellcode ist überwiegend identisch für JWSDP und Apache AXIS, allerdings residieren die verwendeten Typen in unterschiedlichen Java-Packages.
Die Registrierung der BAW SSL-Zertifikate wird über den mitgelieferten keystore in der ersten Zeile über den Systemproperty 'javax.net.ssl.trustStore' geleistet. Wird bereits ein anderer default-keystore in der Client-Anwendung verwendet, so müssen die BAW-Zertifikate diesem hinzugefügt werden und das Setzen der Systemproperties in der unten stehenden Form sollte entfallen.
public static void main(String[] args) throws Exception {
//Muss ggf. bei Verwendung eines Proxyservers für den Zugriff aufs Internet spezifiziert werden
//System.setProperty("http.proxyHost", "meinproxyhost");
//System.setProperty("http.proxyPort", "8080");
//Keystore mit BAW-Zertifikaten für SSL registrieren
//Zweites Argument muss gültiger Pfad sein, hier muss keystore-Datei
//im file-root liegen, also zum Beispiel im Projekt-Root der IDE
System.setProperty("javax.net.ssl.trustStore", "webservice_archiv_keystore");
//Initialisierung der Verbindung und Beschaffung der Service-Schnittstelle über JWSDP
PegelonlineWebserviceArchiv_PortType port =
new PegelonlineWebserviceArchiv_Service_Impl().getPegelonlineWebserviceArchivSOAP();
//Initialisierung der Verbindung und Beschaffung der Service-Schnittstelle über Apache Axis
//PegelonlineWebserviceArchiv_PortType port =
// new PegelonlineWebserviceArchiv_ServiceLocator().getPegelonlineWebserviceArchivSOAP();
//Abfrage getZeitreihenInfo anonym verwenden
ZeitreiheInfo[] infos = port.getZeitreihenInfo("RHEIN", -9999, -9999, null, null, -9999);
//Ausgabe der Messstellen der ZeitreiheInfos
for (int i = 0; i < infos.length; i++) {
System.out.println(
(i+1) + ". ZeitreiheInfo: " +
infos[i].getMessstelle().getNummer() + ", " +
infos[i].getParameter().getNameLang() + ", " +
infos[i].getZeitebene().getNameSend());
}
//Abfrage getZeitreihenData für Messstelle Köln mit Authentifizierung verwenden
//Dies sind nur Dummy-Werte und werden daher von Pegelonline Webservice-Archiv abgewiesen
((javax.xml.rpc.Stub) port)._setProperty(javax.xml.rpc.Stub.USERNAME_PROPERTY, "meinLoginname");
((javax.xml.rpc.Stub) port)._setProperty(javax.xml.rpc.Stub.PASSWORD_PROPERTY, "meinPasswort");
ZeitreiheData[] data = port.getZeitreihenData(
"2730010", "W", 1, new GregorianCalendar(1981, 6, 1), new GregorianCalendar(1981, 6, 3));
//Ausgabe der Daten
for (int i = 0; i < data.length; i++) {
System.out.println((i+1) + ". ZeitreiheData: " + data[i].getWert());
}
}
Verwenden von PEGELONLINE Webservice-Archiv in einer PHP-Umgebung
Für PHP ab Version 5 kann eine API (Application Programming Interface) kostenlos heruntergeladen werden, welche die Initialisierung und Abfrage von PEGELONLINE Webservice-Archiv in PHP vereinfacht und illustriert. PEGELONLINE Webservice-Archiv kann nur über SSL und optional mit Authentifzierung genutzt werden. Näheres dazu in der Dokumentation.Die API verwendet die PHP SOAP-Extension. Folgende Vorraussetzungen müssen erfüllt sein, um die API zu benutzen:
- PHP ab Version 5
- Installation und Deklaration der PHP SOAP-Extension. In der Windows PHP-Distribution ab Version 5 über www.php.net ist die SOAP Extension bereits enthalten, muss allerdings in php.ini deklariert werden. Nach extension=php_soap.dll in php.ini suchen und gegebenenfalls das anführende Semikolon entfernen. Für Linux muss PHP SOAP mit kompiliert werden.
- Analog zur Deklaration von php_soap.dll muss für SSL/HTTPS extension=php_soap.dll in php.ini deklariert werden.