本篇内容介绍了“SpringBoot如何使用axis调用webservice接口”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
WebService
定义
个人理解
通过度娘等方式,个人理解为变相的soap协议加xml工单处理,
实践
webservice 常识
一个webservice 接口发布地址往往类似:
qq 在线验证接口:
www.webxml.com.cn/webservices…
其他可测试接口:
email电子邮箱地址接口: www.webxml.com.cn/WebServices…
全国天气情况接口:
www.webxml.com.cn/WebServices…
qq在线接口验证接口为例
在接口后面加:/wsdl www.webxml.com.cn/webservices…
访问查看然后找到下图中定义的内容:注意使用关联key找到对应的必要使用的参数。
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>
代码(粘贴可用)
@Testpublic 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); }}
对于以上代码,我这边吐槽一下,网上其实很多这个的例子但是实际调用的时候会出问题,注意点:
设置参数
获取结果
xxxx需要填写真实的QQ号码
“SpringBoot如何使用axis调用webservice接口”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!