ホームページ  >  記事  >  Java  >  SpringBoot が axis を使用して Web サービス インターフェイスを呼び出す方法

SpringBoot が axis を使用して Web サービス インターフェイスを呼び出す方法

王林
王林転載
2023-05-11 13:28:062192ブラウズ

WebService

定義

SpringBoot が axis を使用して Web サービス インターフェイスを呼び出す方法

個人的な理解

Du Niangやその他の方法を通じて、私の個人的な理解は、これは偽装されたサービスであるということです。 SOAP プロトコルと XML プロセス 単一処理、

実践

Web サービスの常識

#Web サービス インターフェイスの公開アドレスは、多くの場合次のようになります。 #qq オンライン検証インターフェイス:

    ##www.webxml.com.cn/webservices…
  • その他のテスト可能なインターフェイス:

    email電子メール アドレス インターフェイス: www.webxml.com.cn/WebServices…
  • 全国気象条件インターフェイス:

  • www.webxml.com.cn/WebServices…

qq オンライン インターフェイス検証インターフェイスを例に挙げます。

インターフェイスの後に追加します:

/wsdl

www.webxml.com.cn/webservices…

アクセスと下の図で定義されているものを表示して見つけます。 内容: 関連するキーを使用して、対応する必要なパラメータを見つけることに注意してください。

Maven は axis を使用します

依存関係を適用します (欠落していてはならず、必須です)

        <!-- 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>
SpringBoot が axis を使用して Web サービス インターフェイスを呼び出す方法コード (貼り付け可能)

@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);
    }
}

上記のコードについて、ここで愚痴を言わせてください。実際にこの例はネット上にたくさんありますが、実際に呼び出すと問題が発生します。 注:

パラメータの設定

結果を得る

SpringBoot が axis を使用して Web サービス インターフェイスを呼び出す方法

  • ##xxxx のニーズ実際の QQ 番号を入力します

以上がSpringBoot が axis を使用して Web サービス インターフェイスを呼び出す方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。