java调用webservice,自动生成代码

webService远程调用

一.WebService介绍

1、WebService定义
顾名思义就是基于Web的服务。
它使用Web(HTTP)方式,接收和响应外部系统的某种请求,从而实现远程调用。
web service能解决:
* 基于Web的服务:服务器端整出一些资源让客户端应用访问(获取数据)
* 一个跨语言、跨平台的规范(抽象)
* 多个跨平台、跨语言的应用间通信整合的方案(实际

2、webservice理解
我们可以调用互联网上查询天气信息Web服务,然后将它嵌入到我们的程序(C/S或B/S程序)当中来,
当用户从我们的网点看到天气信息时,他会认为我们为他提供了很多的信息服务,
但其实我们什么也没有做,只是简单了调用了一下服务器上的一段代码而已。
WebSerice可以将你的服务(一段代码)发布到互联网上让别人去调用,
也可以调用别人机器上发布的WebService,就像使用自己的代码一样。

  • 什么时候使用web Service:
  1. 同一家公司的新旧应用之间
  2. 不同公司的应用之间
    如天猫网与中通物流系统交互
  3. 一些提供数据的内容聚合应用:天气预报、股票行情

3、webservice调用的预备知识
(1)XML—Extensible Markup Language 扩展性标记语言
XML,用于传输格式化的数据,是Web服务的基础。
namespace-命名空间。
xmlns=“http://www.xr.com” 使用默认命名空间。
xmlns:xr=“http://www.xr.com”使用指定名称的命名空间。

(2)WSDL—WebService Description Language Web服务描述语言。
通过XML形式说明服务在什么地方-地址。
通过XML形式说明服务提供什么样的方法 – 如何调用。

(3)SOAP—Simple Object Access Protocol(简单对象访问协议)
SOAP作为一个基于XML语言的协议用于有网上传输数据。
SOAP = 在HTTP的基础上+XML数据。
SOAP是基于HTTP的。
SOAP的组成如下:
Envelope – 必须的部分。以XML的根元素出现。
Headers – 可选的。
Body – 必须的。在body部分,包含要执行的服务器的方法。和发送到服务器的数据。

4、webservice服务网址
Webservice服务网站:http://www.webxml.com.cn

5、WSDL解析
点开webservice网站上的手机归属地查询里的
http://ws.webxml.com.cn/WebServices/MobileCodeWS.asmx?wsdl
查看wsdl对服务器的描述
Wsdl文档从下往上读
wsdl:service—所有请求服务的站点集合
wsdl:port—定义为webservice单个服务访问点
binding—特定服务访问点与具体服务类的绑定
PortType—对于某个访问入口点类型所支持的操作的抽象集合,这些操作可以由一个或多个服务访问点来支持(服务类)
Operation—对服务中所支持的操作的抽象描述,一般单个Operation描述了一个访问入口的请求/响应消息对(方法)
Types-数据类型定义的容器,它使用某种类型系统需要的输入参数和输出参数的数据类型
Message—通信消息的数据结构的抽象类型化定义。使用Types所定义的类型来定义整个消息的数据结构(输入参和输出参)

可以在java项目和spring项目中调用,方法是一样的
第一步:进入到web服务的官网中,选择你要调用的web服务(我选择的是电话号码归属地的,其他的是一样的,自己发布的webservice也是一样的)。然后进入到后缀名是?wsdl的路径中,可以看一下。

http://ws.webxml.com.cn/WebServices/MobileCodeWS.asmx .asmx结尾的路径中,有该服务可以调用的方法,以及方法中的参数。
!](https://img-blog.csdnimg.cn/a1aee9e4eaf445e9a483384e24ddedca.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAbTBfNTIzODk3MzU=,size_15,color_FFFFFF,t_70,g_se,x_16)
在这里插入图片描述
第二步,复制路径到命令窗体中,先进入到要解析到的文件夹路径中,然后输入

wsimport -s . -p com.xx.mobile wsdl的路径 这是获取到java文件和class文件,-p后面 是自己取的包名

wsimport -d . wsdl的路径 这是获取到class文件

在这里插入图片描述
生成的java文件:
在这里插入图片描述
第三步:因为项目中只能是java文件,所以把java文件复制到项目中相应的位置,然后调用方法,调用方法一定要联网!
记得不要导错包,你生成的java文件复制在哪个包,就导入哪个包下的。这个可以在main方法中用,有可以在spring对应的方法中调用,方法是一样的。不知道有哪些方法可以调用,可以到asxm结尾的路径中看详细的方法。

public class TestModel {
    public static void main(String[] args) {
        //声明访问点的对象
        MobileCodeWS ws=new MobileCodeWS();
        //获取具体的站点绑定的类对象
        MobileCodeWSSoap wsSoap=ws.getMobileCodeWSSoap();
        //调用绑定类的具体方法
        String info = wsSoap.getMobileCodeInfo("15666666666", "");
        System.out.println(info);
    }
}

调用结果:
在这里插入图片描述
为什么是MobileCodeWS?

答:翻到wsdl路径中的最后面,后面有一个service name的标签,里面就是访问点的对象名
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值