首页 > Java > java教程 > 如何使用 Java 中的 SAAJ 构建功能性 SOAP 客户端?

如何使用 Java 中的 SAAJ 构建功能性 SOAP 客户端?

DDD
发布: 2024-11-08 21:21:02
原创
586 人浏览过

How to Build Functional SOAP Clients with SAAJ in Java?

使用 SAAJ 实现工作 SOAP 客户端

在 Java 中,可以使用 SOAP with Attachments API 实现简单对象访问协议 (SOAP) Java (SAAJ) 框架。该框架允许开发人员直接处理 SOAP 消息,而不是依赖第三方 Web 服务 API。

使用 SAAJ 创建 SOAP 客户端

下面是一个示例使用 SAAJ 实现的工作 SOAP 客户端:

import javax.xml.soap.*;

public class SOAPClientSAAJ {

    public static void main(String[] args) {
        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 {
        SOAPPart soapPart = soapMessage.getSOAPPart();

        String myNamespace = "myNamespace";
        String myNamespaceURI = "http://www.webserviceX.NET";

        SOAPEnvelope envelope = soapPart.getEnvelope();
        envelope.addNamespaceDeclaration(myNamespace, myNamespaceURI);

        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();

            // Send SOAP message to SOAP server
            SOAPMessage soapResponse = soapConnection.call(createSOAPRequest(soapAction), soapEndpointUrl);

            // Print the SOAP response
            System.out.println("Response SOAP Message:");
            soapResponse.writeTo(System.out);
            soapConnection.close();
        } catch (Exception e) {
            System.err.println("Error occurred while sending SOAP Request to Server!");
            e.printStackTrace();
        }
    }

    private static SOAPMessage createSOAPRequest(String soapAction) throws Exception {
        MessageFactory messageFactory = MessageFactory.newInstance();
        SOAPMessage soapMessage = messageFactory.createMessage();

        createSoapEnvelope(soapMessage);

        MimeHeaders headers = soapMessage.getMimeHeaders();
        headers.addHeader("SOAPAction", soapAction);

        soapMessage.saveChanges();
        return soapMessage;
    }

}
登录后复制

以上是如何使用 Java 中的 SAAJ 构建功能性 SOAP 客户端?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板