首頁 > Java > java教程 > 如何使用 SAAJ 在 Java 中建立功能性 SOAP 用戶端?

如何使用 SAAJ 在 Java 中建立功能性 SOAP 用戶端?

Linda Hamilton
發布: 2024-11-07 13:59:02
原創
836 人瀏覽過

How can I create a functional SOAP client in Java using SAAJ?

使用SAAJ 提供功能性SOAP 客戶端

簡介

簡介

簡單,存取物件協議,廣泛用於Web 服務通訊。在 Java 中實作 SOAP 用戶端非常簡單,尤其是在 SAAJ(具有 Attachments API for Java 的 SOAP)框架的幫助下。本文介紹了使用 SAAJ 建立的 SOAP 用戶端的工作範例,並提供了使用該框架的指南。

面向 SOAP 用戶端的 SAAJ

SAAJ 提供了一套全面的 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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板