JAX-WS: Test du gestionnaire SOAP pour le client et le serveur

C’est la partie 3 du gestionnaire SOAP JAX-WS. Un résultat de test pour link://webservices/jax-ws/jax-ws-soap-handler-in-server-side/[partie 1:

Gestionnaire SOAP côté serveur]et lien://services Web/jax-ws/gestionnaire jax-ws-soap-in-côté-client/[partie 2:

Gestionnaire SOAP côté client]. Voir les cas d’utilisation suivants

1. Adresse MAC valide

De haut en bas, un client avec l’adresse MAC de l’ordinateur valide envoie une demande au service publié.

Client : getHeaders()......
Client : getHeaders()......
Client : handleMessage()......
Current IP address : 192.168.0.2
Current MAC address : 90-4C-E5-44-B9-8F
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
    <S:Header>
        <macAddress xmlns="http://ws.mkyong.com/"
            xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
            SOAP-ENV:actor="http://schemas.xmlsoap.org/soap/actor/next">
                90-4C-E5-44-B9-8F
        </macAddress>
    </S:Header>
    <S:Body>
        <ns2:getServerName xmlns:ns2="http://ws.mkyong.com/"/>
    </S:Body>
</S:Envelope>
Client : handleMessage()......
Client : close()......
mkyong server

2. Adresse MAC invalide

De haut en bas, un client avec l’adresse MAC de l’ordinateur invalide envoie une demande au service publié et obtient une SOAPFaultException .

Client : getHeaders()......
Client : getHeaders()......
Client : handleMessage()......
Current IP address : 192.168.0.2
Current MAC address : 90-4C-E5-44-B9-00
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
    <S:Header>
        <macAddress xmlns="http://ws.mkyong.com/"
            xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
            SOAP-ENV:actor="http://schemas.xmlsoap.org/soap/actor/next">
                90-4C-E5-44-B9-00
        </macAddress>
    </S:Header>
    <S:Body>
        <ns2:getServerName xmlns:ns2="http://ws.mkyong.com/"/>
    </S:Body>
</S:Envelope>
Server : handleMessage()......
Server : close()......
Client : handleFault()......
Client : close()......
Exception in thread "main" javax.xml.ws.soap.SOAPFaultException: Invalid mac address, access is denied.
        at com.sun.xml.internal.ws.fault.SOAP11Fault.getProtocolException(Unknown Source)
        at com.sun.xml.internal.ws.fault.SOAPFaultBuilder.createException(Unknown Source)
        at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(Unknown Source)
        at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(Unknown Source)
        at com.sun.xml.internal.ws.client.sei.SEIStub.invoke(Unknown Source)
        at $Proxy29.getServerName(Unknown Source)
        at com.mkyong.client.WsClient.main(WsClient.java:13)
Caused by: javax.xml.ws.soap.SOAPFaultException: Invalid mac address, access is denied.
      //...

Terminé.

Conclusion

En bref, le gestionnaire de services Web n’est qu’un intercepteur pour intercepter les messages SOAP entrants et sortants, côté client ou serveur, et il est également capable de manipuler les valeurs des messages SOAP.

Télécharger le code source

Téléchargez-le - lien://wp-content/uploads/2011/01/JAX-WS-Handler-Example.zip[JAX-WS-Handler-Example.zip](21 Ko)

lien://tag/jax-ws/[jax-ws]lien://tag/soap/[soap]lien://tag/web-services/[services web]