Maison >Java >javaDidacticiel >Comment SpringBoot utilise Axis pour appeler l'interface du service Web
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,
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…
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.
<!-- 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>
@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
Obtenir les résultats
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!