Introduction
SOAP est un protocole largement utilisé pour échanger des messages XML sur le Web . Implémenter un client SOAP peut être une tâche difficile, surtout pour les débutants. Cet article vise à fournir un exemple simple et pratique d'un client SOAP fonctionnel en Java, utilisant le framework SAAJ (SOAP avec API de pièces jointes pour Java).
SAAJ : SOAP avec API de pièces jointes pour Java
SAAJ est un framework en Java permettant de gérer directement les messages SOAP. Il permet aux développeurs de créer et d'analyser des messages SOAP sans utiliser JAX-WS. SAAJ fournit une interface simplifiée pour travailler avec les messages SOAP, ce qui en fait un choix idéal pour créer des clients SOAP.
Exemple de client SOAP fonctionnel
L'extrait de code suivant présente un exemple de client SOAP fonctionnel. Exemple de client SOAP utilisant SAAJ. Ce client appelle un service Web pour récupérer des informations sur une ville spécifique :
import javax.xml.soap.*; public class SOAPClientSAAJ { // SAAJ - SOAP Client Testing public static void main(String args[]) { // SOAP Endpoint URL and SOAP Action String soapEndpointUrl = "http://www.webservicex.net/uszip.asmx"; String soapAction = "http://www.webserviceX.NET/GetInfoByCity"; callSoapWebService(soapEndpointUrl, soapAction); } private static void createSoapEnvelope(SOAPMessage soapMessage) throws SOAPException { // Create SOAP Envelope and Namespace SOAPPart soapPart = soapMessage.getSOAPPart(); String myNamespace = "myNamespace"; String myNamespaceURI = "http://www.webserviceX.NET"; SOAPEnvelope envelope = soapPart.getEnvelope(); envelope.addNamespaceDeclaration(myNamespace, myNamespaceURI); // Create SOAP Body and Request Content SOAPBody soapBody = envelope.getBody(); SOAPElement soapBodyElem = soapBody.addChildElement("GetInfoByCity", myNamespace); SOAPElement soapBodyElem1 = soapBodyElem.addChildElement("USCity", myNamespace); soapBodyElem1.addTextNode("New York"); } private static void callSoapWebService(String soapEndpointUrl, String soapAction) { try { // Create SOAP Connection and Message SOAPConnectionFactory soapConnectionFactory = SOAPConnectionFactory.newInstance(); SOAPConnection soapConnection = soapConnectionFactory.createConnection(); SOAPMessage soapMessage = createSOAPRequest(soapAction); // Send SOAP Message and Receive Response SOAPMessage soapResponse = soapConnection.call(soapMessage, soapEndpointUrl); soapResponse.writeTo(System.out); soapConnection.close(); } catch (Exception e) { System.err.println("Error sending SOAP Request!"); e.printStackTrace(); } } private static SOAPMessage createSOAPRequest(String soapAction) throws Exception { // Create SOAP Message and Add Headers MessageFactory messageFactory = MessageFactory.newInstance(); SOAPMessage soapMessage = messageFactory.createMessage(); createSoapEnvelope(soapMessage); MimeHeaders headers = soapMessage.getMimeHeaders(); headers.addHeader("SOAPAction", soapAction); soapMessage.saveChanges(); return soapMessage; } }
Exécution de l'exemple
Pour exécuter cet exemple, vous devez avoir installé Java sur votre système. Enregistrez l'extrait de code sous forme de fichier avec une extension .java, compilez-le à l'aide de javac, puis exécutez-le avec java. Le code appellera le service Web pour récupérer des informations sur la ville "New York", et la réponse sera imprimée sur la console.
Notes supplémentaires
En suivant cet exemple et en comprenant les concepts de construction et de gestion des messages SOAP à l'aide de SAAJ, vous pouvez créer en toute confiance des clients SOAP pour vos propres applications.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!