Beispiel: Entwurf eines Web-Services für Benachrichtigungskonsumenten erstellen

Verwenden Sie dieses Beispiel, wenn Sie einen Web-Service erstellen, der den NotificationConsumer portType implementiert, der von der Spezifikation defined by the Web Services Base Notification definiert wird.

Informationen zu diesem Vorgang

In dieser Task werden zwei Codebeispiele bereitgestellt:
  • Ein WSDL-Beispieldokument beschreibt einen Web-Service, der den portType NotificationConsumer (Benachrichtigungskonsument) implementiert, der in der Spezifikation "Web Services Base Notification" definiert ist.
  • Eine Basisimplementierung der Serviceendpunktschnittstelle (SEI, Service Endpoint Interface), die aus dem vorherigen WSDL-Dokument mit dem Tool WSDL2Java generiert wird.
Anmerkung: Der Artikel Writing JAX-WS applications for WS-Notification enthält auch ein Beispiel für einen Konsumenten-Web-Service.

Vorgehensweise

Wenn Sie einen Web-Service-Entwurf für einen Benachrichtigungskonsumenten erstellen, ziehen Sie die folgenden Codebeispiele zu Rate.

Beispiel

Das folgende WSDL-Beispieldokument beschreibt einen Web-Service, der den portType NotificationConsumer (Benachrichtigungskonsument) implementiert, der in der Spezifikation "Web Services Base Notification" definiert ist:

<?xml version="1.0" encoding="utf-8"?>

<wsdl:definitions xmlns="http://schemas.xmlsoap.org/wsdl/"
    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
    	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:wsn-bw="http://docs.oasis-open.org/wsn/bw-2"
    xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
    xmlns:tns="uri:example.wsn/consumer"
    targetNamespace="uri:example.wsn/consumer">

    <wsdl:import namespace="http://docs.oasis-open.org/wsn/bw-2"
                           location="http://docs.oasis-open.org/wsn/bw-2.wsdl" />

    <wsdl:binding name="NotificationConsumerBinding" type="wsn-bw:NotificationConsumer">
        <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
        <wsdl:operation name="Notify">
            <wsdlsoap:operation soapAction=""/>
            <wsdl:input>
                <wsdlsoap:body use="literal"/>
            </wsdl:input>
        </wsdl:operation>
    </wsdl:binding>

    <wsdl:service name="NotificationConsumerService">
        <wsdl:port name="NotificationConsumerPort" binding="tns:NotificationConsumerBinding">
            <wsdlsoap:address location="http://myserver.mycom.com:9080/Consumer" />
        </wsdl:port>
    </wsdl:service>

</wsdl:definitions>

Das folgende Beispiel zeigt eine Basisimplementierung der Serviceendpunktschnittstelle (Service Endpoint Interface, SEI), die mit dem Tool WSDL2Java aus dem vorherigen WSDL-Dokument generiert wird:

public class ConsumerExample implements NotificationConsumer {
        
    public void notify(NotificationMessage[] notificationMessage, SOAPElement[] any) 
                                                                    throws RemoteException {
        // Jede NotificationMessage (Benachrichtigung) verarbeiten
        for (int i=0; i<notificationMessage.length; i++) {
            NotificationMessage message = notificationMessage[i];
                
            // Den Inhalt der Nachricht abrufen
            SOAPElement messageContent = message.getMessageContents();
                
            // Den Ausdruck abrufen, der anzeigt, welchem Topic die Nachricht zugeordnet ist
            TopicExpression topic = message.getTopic();
                
            // Eine Referenz auf den Erzeuger (Producer) abrufen (dieser Wert ist optional und kann daher null sein)
            EndpointReference producerRef = message.getProducerReference();
                
            // Eine Referenz auf die Subskription abrufen (dieser Wert ist optional und kann daher null sein)
            EndpointReference subscriptionRef = message.getSubscriptionReference();
                
            // Benutzerdefinierte Verarbeitung...

        }
    }
}

Symbol, das den Typ des Artikels anzeigt. Taskartikel



Symbol für Zeitmarke Letzte Aktualisierung: 25.05.2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tjwsn_ex_cons
Dateiname:tjwsn_ex_cons.html