Webdienste verwenden normalerweise SOAP anstelle des HTTP-Protokolls. In einem solchen Szenario werden SOAP-Pakete gesendet. Wenn Collections und andere komplexe Objekte in SOAP-Paketen gebündelt werden, ist es kaum möglich, die ASCII-Datenstrukturen zu lesen und zu bearbeiten. Unerfahrene Entwickler sollten nicht versuchen, einen Webdienst-Client durch direkte Bearbeitung von SOAP-Paketen zu erstellen. Erfahrene Entwickler erstellen normalerweise keine Webdienst-Clients auf SOAP-Paket-Ebene. Ein solches Vorgehen wäre mühsam und fehleranfällig. Aus diesem Grund stellen alle wichtigen Programmiersprachen Entwicklungs-Kits für Webdienste bereit. In Silk Central wird Java API for XML Web Services (JAX-WS) zur Erstellung von Webdiensten und Clients verwendet, die über SOAP-Nachrichten kommunizieren.
Unabhängig von der Programmiersprache (Java, C++, C#, Perl oder Python) folgt die Erstellung von Webdienst-Clients einem immer gleichen Muster:
Beispiel: wsimport -s <Speicherort der generierten Stubs> -p <Zielpaket> <WSDL>
Das Tool wsimport generiert mehrere Klassen, die einen Client für den Webdienst unterstützen. Wenn der Name des Dienstes YourWebService ist, werden die folgenden Klassen ausgegeben:
Erstellen Sie eine neue Java-Klasse namens YourWebServiceClient, um einen JAX-WS-Client zu generieren, mit dem Silk Central-Webdienste verwendet werden können. Der Webdienst muss durch einen Port gebunden werden; ein Port ist ein logisches Objekt, das als Proxy für den Remote-Dienst auftritt. Beachten Sie, dass der Port durch die Ausführung des wsimport-Tools im oberen Schritt erstellt wurde. Um diesen Proxy zu erhalten, rufen Sie die Methode getRequirementsServicePort auf dem Dienst auf:
// Bind to the Requirements service RequirementsServiceService port = new RequirementsServiceService (new URL("http", mHost, mPort, "/Services1.0/jaxws/requirements?wsdl")); RequirementsService requirementsService = port.getRequirementsServicePort();
Um sich bei den Webdiensten zu authentifizieren, generieren Sie ein Webdienst-Token auf der Seite Benutzereinstellungen der Silk Central-Benutzeroberfläche. Um auf diese Seite zuzugreifen, zeigen Sie mit dem Mauszeiger auf den Benutzernamen im Menü Silk Central und wählen Sie Benutzereinstellungen.
Sie können ebenfalls die Methode logonUser des Dienstes aufrufen, indem Sie Benutzername und Kennwort übergeben, um eine Sitzungs-ID zu erhalten:
// Login to Silk Central and get session ID String sessionId = requirementsService.logonUser(mUsername, mPassword);