SOAP
Willemers Informatik-Ecke
SOAP (ursprünglich Simple Object Access Protocol) ist ein Netzwerkprotokoll, das in der Regel das Web-Protokoll HTTP verwendet, um Daten im XML-Format auszutauschen. Dabei steht die Übertragung der XML-Daten weniger im Mittelpunkt als der Aufruf von Unterprogrammen auf einem Server im Sinne eines Remote Procedure Calls (RPC).

Das bedeutet, dass der Server Methoden im Netzwerk zur Verfügung stellt, die von anderen Computern des Netzwerk als Client aufgerufen werden können.

Für Client und Server wird aus einer WSDL-Beschreibung (Web Services Description Language) ein Interface festgelegt. WSDL basiert auf XML. Es ist möglich, aus einer WSDL-Definition ein Java-Interface zu generieren. Es ist aber auch möglich, aus einem Java-Interface eine WSDL zu generieren.

Die Standard-Schnittstelle ist die Java API for XML Web Services, kurz JAX-WS. Die Referenzimplementierung ist jax-ws.java.net.

Die Web-Service-Methode

Die Klasse, deren Methoden später vom Client aufgerufen werden soll, wird mit den Annotationen @WebService und jede aufrufbare Methode mit der Annotation @WebMethod versehen.
import javax.jws.WebMethod;
import javax.jws.WebService;

@WebService
public class Hallo {
    @WebMethod
    public String sagHallo(String name) {
        return "Hallo, " + name;
    }
}
In der Klasse können mehrere Methoden definiert werden, die entsprechend von einem Client aufgerufen werden können.

SOAP Clients

Ein SOAP-Client benötigt keinen Application Server. In den meisten Fällen wird ein normales Programm den Kontakt zum SOAP-Server aufnehmen, seine Anfrage stellen, die Ergebnisse auswerten und dann weiterlaufen.