Comment créer un client SOAP fonctionnel en utilisant SAAJ en Java ?
Nov 13, 2024 am 11:24 AMExemple de client SOAP fonctionnel
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
- Cet exemple utilise un service Web simple à des fins de démonstration ; vous pouvez le modifier pour appeler d'autres services Web SOAP.
- SAAJ a été supprimé de Java 11, vous devrez donc peut-être utiliser un framework ou une bibliothèque alternative si vous utilisez une version plus récente de Java.
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!

Article chaud

Outils chauds Tags

Article chaud

Tags d'article chaud

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Top 4 frameworks JavaScript en 2025: React, Angular, Vue, Svelte

Comment fonctionne le mécanisme de chargement de classe de Java, y compris différents chargeurs de classe et leurs modèles de délégation?

Comment utiliser Maven ou Gradle pour la gestion avancée de projet Java, la création d'automatisation et la résolution de dépendance?

Node.js 20: Boosts de performances clés et nouvelles fonctionnalités

Comment puis-je implémenter des techniques de programmation fonctionnelle en Java?

Iceberg: L'avenir des tables de Data Lake

Comment implémenter la mise en cache à plusieurs niveaux dans les applications Java à l'aide de bibliothèques comme la caféine ou le cache de goyave?

Spring Boot SnakeyAml 2.0 CVE-2022-1471 Issue fixe
