Fournir un client SOAP fonctionnel utilisant SAAJ
Introduction
SOAP, l'accès simple aux objets Le protocole est largement utilisé pour la communication des services Web. L'implémentation de clients SOAP en Java peut être simple, notamment avec l'aide du framework SAAJ (SOAP with Attachments API for Java). Cet article présente un exemple fonctionnel de client SOAP créé avec SAAJ et fournit des conseils pour l'utilisation du framework.
SAAJ pour les clients SOAP
SAAJ propose un ensemble complet d'API. pour gérer les messages SOAP. Il permet aux développeurs de créer, d'envoyer et de recevoir directement des messages SOAP, offrant ainsi une flexibilité dans l'interaction avec les services Web. SAAJ fait partie du standard Java SE, ce qui le rend facilement disponible à des fins de développement.
Exemple de client SOAP fonctionnel
L'extrait de code suivant présente un client SOAP fonctionnel utilisant SAAJ :
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 { // Namespace and URI String myNamespace = "myNamespace"; String myNamespaceURI = "http://www.webserviceX.NET"; // SOAP Envelope SOAPPart soapPart = soapMessage.getSOAPPart(); SOAPEnvelope envelope = soapPart.getEnvelope(); envelope.addNamespaceDeclaration(myNamespace, myNamespaceURI); // SOAP Body 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 SOAPConnectionFactory soapConnectionFactory = SOAPConnectionFactory.newInstance(); SOAPConnection soapConnection = soapConnectionFactory.createConnection(); // SOAP Message and SOAP Request SOAPMessage soapRequest = createSOAPRequest(soapAction); // Send SOAP Message and Receive Response SOAPMessage soapResponse = soapConnection.call(soapRequest, soapEndpointUrl); // Print Response soapResponse.writeTo(System.out); // Close Connection soapConnection.close(); } catch (Exception e) { e.printStackTrace(); } } private static SOAPMessage createSOAPRequest(String soapAction) throws Exception { // Message Factory and SOAP Message MessageFactory messageFactory = MessageFactory.newInstance(); SOAPMessage soapMessage = messageFactory.createMessage(); // Create Soap Envelope createSoapEnvelope(soapMessage); // Set MIME Headers and Soap Action MimeHeaders headers = soapMessage.getMimeHeaders(); headers.addHeader("SOAPAction", soapAction); // Save Changes and Print Request soapMessage.saveChanges(); soapMessage.writeTo(System.out); return soapMessage; } }
Exécuter l'exemple
Pour exécuter cet exemple, placez-le dans un fichier nommé SOAPClientSAAJ.java et compilez-le à l'aide d'un compilateur Java. Exécutez la classe compilée et elle appellera le service Web spécifié dans le code pour récupérer des informations sur la ville « New York ». La réponse sera imprimée sur la console.
Conclusion
Cet article complet fournit des conseils sur la mise en œuvre de clients SOAP en Java à l'aide du framework SAAJ. L'exemple fonctionnel présentant un client SOAP appelant un service Web peut être utilisé comme référence pour créer vos propres solutions basées sur SOAP. En tirant parti des capacités de SAAJ, les développeurs peuvent créer des clients SOAP robustes qui interagissent de manière transparente avec divers services Web.
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!