Nutzung der SOAP-Schnittstelle mittels webPDF wsclient

Minimale technische Voraussetzungen

  • Java version: 7
  • webPDF version: 7
  • wsclient version: 1

Bild Glühbirne: Anleitung - Tutorial

In diesem Beitrag zeigen wir, wie Sie die webPDF wsclient-Bibliothek in Java nutzen können, um webPDF-Webservices über die SOAP-Schnittstelle anzusprechen.

Falls noch nicht geschehen, empfiehlt sich zuvor der Beitrag zur Einführung: webPDF und Java: mit der wsclient-Bibliothek ganz einfach.

Einen Beitrag zur REST-Schnittstelle finden Sie hier: Nutzung der REST-Schnittstelle mittels webPDF wsclient

Der erste SOAP-Webserviceaufruf

Im folgenden Beispiel betrachten wir den grundlegenden Aufruf eines webPDF-SOAP-Webservices mit wsclient. Exemplarisch verwenden wir den Converter-Webservice; das Muster gilt analog für andere Webservices.

Verbindungsherstellung über SoapSession

Zunächst wird eine Verbindung zum webPDF-Server aufgebaut und eine Session erzeugt. Dazu instanziieren wir ein SoapSession-Objekt über die SessionFactory mit dem Protokoll SOAP und der URL des Servers:

SoapSession session = SessionFactory.createInstance(
WebServiceProtocol.SOAP,
new URL("https://localhost:8080/webPDF/")
);

Wichtig: Die Session sollte am Ende wieder geschlossen werden, z. B. über session.close() oder per try-with-resources.

Wahl von Quell- und Zieldokument

Für den Webservice-Aufruf werden Quelle und Ziel über ein SoapDocument definiert. In diesem Beispiel:

  • Quelle: Datei (per URI)
  • Ziel: Datei für das Ergebnis
SoapDocument soapDocument = new SoapDocument(
new File("Pfad des Quelldokuments").toURI(),
new File("Pfad des Zieldokuments")
);

Auch das SoapDocument sollte am Ende geschlossen werden.

Wahl und Konfiguration des Webservices

Der gewünschte Webservice wird über WebServiceFactory und WebServiceType ausgewählt:

ConverterWebService converterWebService =
WebServiceFactory.createInstance(session, WebServiceType.CONVERTER);

Danach wird das SoapDocument gesetzt:

converterWebService.setDocument(soapDocument);

Die Parametrisierung erfolgt über getOperation(). Welche Parameter verfügbar sind, hängt vom jeweiligen Webservice ab und ist in der webPDF-Parameterdokumentation beschrieben.

Beispiel:

converterWebService.getOperation().setJpegQuality(100);
converterWebService.getOperation().setDpi(300);

Ausführung, Auswertung und Abmeldung

Die Ausführung erfolgt über process():

converterWebService.process();

Bei Erfolg wird das Ergebnis in das Ziel des SoapDocument geschrieben. Bei Fehlern wird eine ResultException geworfen und sollte in einem catch-Block verarbeitet werden.

Gesamtbeispiel

try (
SoapSession session = SessionFactory.createInstance(
WebServiceProtocol.SOAP,
new URL("https://localhost:8080/webPDF/")
);
SoapDocument soapDocument = new SoapDocument(
new File("Pfad des Quelldokuments").toURI(),
new File("Pfad des Zieldokuments")
)
) {
ConverterWebService converterWebService =
WebServiceFactory.createInstance(session, WebServiceType.CONVERTER);

converterWebService.setDocument(soapDocument);
converterWebService.getOperation().setJpegQuality(100);
converterWebService.getOperation().setDpi(300);

converterWebService.process();
} catch (ResultException ex) {
// Fehlerbehandlung
}

Weiterführende Informationen