Maison  >  Article  >  Java  >  Comment SpringBoot utilise Axis pour appeler l'interface du service Web

Comment SpringBoot utilise Axis pour appeler l'interface du service Web

王林
王林avant
2023-05-11 13:28:062207parcourir

WebService

Définition

Comment SpringBoot utilise Axis pour appeler linterface du service Web

Compréhension personnelle

Grâce à Du Niang et d'autres méthodes, je le comprends personnellement comme un protocole de savon déguisé plus le traitement des bons de travail XML,

Pratique

le bon sens du service Web

Une publication d'interface de service Web l'adresse est souvent similaire :

  • qq Interface de vérification en ligne :

www.webxml.com.cn/webservices…

  • Autres interfaces testables :

interface d'adresse e-mail : www.webxml.com. cn/ WebServices…

Interface des conditions météorologiques nationales :

www.webxml.com.cn/WebServices…

Interface de vérification de l'interface en ligne qq à titre d'exemple

Ajouter après l'interface : /wsdl www.webxml.com. cn/webservices&hellip ;

Visitez, visualisez et trouvez le contenu défini dans la figure ci-dessous : Faites attention à utiliser la clé associée pour trouver les paramètres nécessaires correspondants.

Comment SpringBoot utilise Axis pour appeler linterface du service Web

maven utilise axis

Dépendances d'application (ne peuvent pas être manquantes et obligatoires)

        <!-- 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>

Code (peut être collé)

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

Pour le code ci-dessus, je vais me plaindre ici. Il y a en fait de nombreux exemples de cela sur le. Internet, mais quand il est réellement appelé, quelque chose s'est mal passé, veuillez noter :

  • Définir les paramètres

Comment SpringBoot utilise Axis pour appeler linterface du service Web

  • Obtenir les résultats

Comment SpringBoot utilise Axis pour appeler linterface du service Web

xxxx doit remplir le vrai numéro QQ

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer