Menyediakan Klien SOAP Berfungsi Menggunakan SAAJ
Pengenalan
SOAP, Akses Objek Mudah Protokol, digunakan secara meluas untuk komunikasi perkhidmatan web. Melaksanakan klien SOAP di Java boleh menjadi mudah, terutamanya dengan bantuan rangka kerja SAAJ (SOAP dengan Attachments API untuk Java). Artikel ini membentangkan contoh kerja klien SOAP yang dibuat dengan SAAJ dan menyediakan panduan untuk menggunakan rangka kerja.
SAAJ untuk Pelanggan SOAP
SAAJ menawarkan set API yang komprehensif untuk mengendalikan mesej SOAP. Ia membolehkan pembangun membuat, menghantar dan menerima mesej SOAP secara langsung, memberikan kefleksibelan dalam berinteraksi dengan perkhidmatan web. SAAJ ialah sebahagian daripada Java SE standard, menjadikannya tersedia untuk tujuan pembangunan.
Contoh Klien SOAP Bekerja
Coretan kod berikut mempamerkan klien SOAP berfungsi menggunakan 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; } }
Menjalankan Contoh
Untuk menjalankan contoh ini, letakkannya dalam fail bernama SOAPClientSAAJ.java dan susunkannya menggunakan pengkompil Java. Laksanakan kelas yang disusun, dan ia akan memanggil perkhidmatan web yang dinyatakan dalam kod untuk mendapatkan maklumat tentang bandar "New York." Respons akan dicetak pada konsol.
Kesimpulan
Artikel komprehensif ini memberikan panduan tentang melaksanakan klien SOAP di Java menggunakan rangka kerja SAAJ. Contoh kerja yang mempamerkan klien SOAP yang memanggil perkhidmatan web boleh digunakan sebagai rujukan untuk membina penyelesaian berasaskan SOAP anda sendiri. Dengan memanfaatkan keupayaan SAAJ, pembangun boleh mencipta pelanggan SOAP yang mantap yang berinteraksi dengan lancar dengan pelbagai perkhidmatan web.
Atas ialah kandungan terperinci Bagaimanakah saya boleh mencipta klien SOAP berfungsi di Jawa menggunakan SAAJ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!