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]