Maison > Java > javaDidacticiel > Comment créer un client SOAP fonctionnel en utilisant SAAJ en Java ?

Comment créer un client SOAP fonctionnel en utilisant SAAJ en Java ?

DDD
Libérer: 2024-11-13 11:24:02
original
825 Les gens l'ont consulté

How can you create a working SOAP client using SAAJ in Java?

Exemple 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;
    }

}
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal