使用SAAJ 提供功能性SOAP 客戶端
簡介
簡介簡單,存取物件協議,廣泛用於Web 服務通訊。在 Java 中實作 SOAP 用戶端非常簡單,尤其是在 SAAJ(具有 Attachments API for Java 的 SOAP)框架的幫助下。本文介紹了使用 SAAJ 建立的 SOAP 用戶端的工作範例,並提供了使用該框架的指南。
面向 SOAP 用戶端的 SAAJSAAJ 提供了一套全面的 API用於處理 SOAP 訊息。它使開發人員能夠直接建立、發送和接收 SOAP 訊息,從而提供與 Web 服務互動的靈活性。 SAAJ 是標準 Java SE 的一部分,使其可隨時用於開發目的。
工作SOAP 用戶端範例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; } }
以下程式碼片段展示了使用SAAJ 的功能SOAP 用戶端:
執行範例要執行此範例,請將其放入名為SOAPClientSAAJ.java 的檔案中,並使用Java 編譯器進行編譯。執行編譯後的類,它將呼叫程式碼中指定的 Web 服務來檢索有關城市「紐約」的資訊。響應將列印在控制台上。
結論這篇綜合文章提供了有關使用 SAAJ 框架在 Java 中實現 SOAP 用戶端的指南。展示呼叫 Web 服務的 SOAP 用戶端的工作範例可用作建置您自己的基於 SOAP 的解決方案的參考。利用 SAAJ 的功能,開發人員可以創建強大的 SOAP 用戶端,與各種 Web 服務無縫互動。以上是如何使用 SAAJ 在 Java 中建立功能性 SOAP 用戶端?的詳細內容。更多資訊請關注PHP中文網其他相關文章!