Rumah > Java > javaTutorial > Cara SpringBoot menggunakan paksi untuk memanggil antara muka perkhidmatan web

Cara SpringBoot menggunakan paksi untuk memanggil antara muka perkhidmatan web

王林
Lepaskan: 2023-05-11 13:28:06
ke hadapan
2241 orang telah melayarinya

WebService

Definisi

Cara SpringBoot menggunakan paksi untuk memanggil antara muka perkhidmatan web

Pemahaman peribadi

Melalui kaedah seperti Du Niang, saya secara peribadi memahaminya sebagai sabun yang menyamar protokol tambah proses xml Pemprosesan tunggal,

Amalkan

akal waras perkhidmatan web

Alamat penerbitan antara muka perkhidmatan web selalunya serupa:

  • antara muka pengesahan dalam talian qq:

www.webxml.com.cn/webservices…

  • Antara muka lain yang boleh diuji:

e-mel Antara muka alamat e-mel: www.webxml.com.cn/WebServices…

Antara muka keadaan cuaca negara:

www.webxml.com.cn/WebServices…

qq Ambil antara muka pengesahan antara muka dalam talian sebagai contoh

Tambah selepas antara muka: /wsdl www.webxml.com.cn/webservices…

Akses ke. lihat dan cari definisi dalam rajah di bawah Kandungan: Beri perhatian kepada menggunakan kekunci yang berkaitan untuk mencari parameter yang diperlukan yang sepadan.

Cara SpringBoot menggunakan paksi untuk memanggil antara muka perkhidmatan web

maven Gunakan paksi

Gunakan kebergantungan (tidak hilang dan diperlukan)

        <!-- https://mvnrepository.com/artifact/org.apache.axis/axis -->
        <dependency>
            <groupId>org.apache.axis</groupId>
            <artifactId>axis</artifactId>
            <version>1.4</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/wsdl4j/wsdl4j -->
        <dependency>
            <groupId>wsdl4j</groupId>
            <artifactId>wsdl4j</artifactId>
            <version>1.6.2</version>
        </dependency>
<!--        解决cell 转换问题-->
        <!-- https://mvnrepository.com/artifact/javax.xml/jaxrpc-api -->
        <dependency>
            <groupId>javax.xml</groupId>
            <artifactId>jaxrpc-api</artifactId>
            <version>1.1</version>
        </dependency>
<!--       解析调用结果以及数据转换包-->
        <!-- https://mvnrepository.com/artifact/commons-discovery/commons-discovery -->
        <dependency>
            <groupId>commons-discovery</groupId>
            <artifactId>commons-discovery</artifactId>
            <version>0.2</version>
        </dependency>
Salin selepas log masuk

Kod (tampal tersedia)

@Test
public void testWebService() {
    try {
        //wsdl地址
        String endpoint = "http://www.webxml.com.cn/webservices/qqOnlineWebService.asmx";
        //命名空间
        String namespace = "http://WebXml.com.cn/";
        //服务名
        String serviceName = "qqOnlineWebService";
        //方法名
        String methodName = "qqCheckOnline";
        //soapAction
        String soapAction = "http://WebXml.com.cn/qqCheckOnline";

        Service service = new Service();
        Call call = (Call) service.createCall();
        //设置响应超时
        call.setTimeout(3000);
        //设置地址
        call.setTargetEndpointAddress(new java.net.URL(endpoint));
        //设置方法名
        call.setOperationName(new QName(namespace, methodName));

        //设置参数
        call.addParameter(new QName(namespace, "qqCode")
                , org.apache.axis.encoding.XMLType.XSD_STRING, javax.xml.rpc.ParameterMode.IN);
        //设置返回类型
        call.setReturnType(XMLType.XSD_SCHEMA);
        //启用soap
        call.setUseSOAPAction(true);
        //设置soapAction
        call.setSOAPActionURI(soapAction);
        //设置服务名
        SOAPService soapService = new SOAPService();
        soapService.setName(serviceName);
        call.setSOAPService(soapService);
        Schema result = (Schema) call.invoke(new Object[]{"xxxxx"});
        for (int i = 0; i < result.get_any().length; i++) {
            System.out.println(result.get_any()[i]);
        }
    } catch (Exception e) {
        log.error("ddd", e);
    }
}
Salin selepas log masuk

Mengenai kod di atas, izinkan saya mengadu di sini sebenarnya terdapat banyak contoh ini di Internet, tetapi masalah akan berlaku apabila benar-benar memanggilnya.

Dapatkan hasilCara SpringBoot menggunakan paksi untuk memanggil antara muka perkhidmatan web

  • xxxx perlu isikan nombor QQ sebenar

Atas ialah kandungan terperinci Cara SpringBoot menggunakan paksi untuk memanggil antara muka perkhidmatan web. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan