webservice

申请接口,书写方法。@WebService发布,@WebMethod方法发布,发布表示可被外界访问

 

实现接口,@WebService发布

 

实例化server实现类,put添加到容器中,运行这个类。URL访问:http://localhost:8081/k?wsdl

注意  wsdl  不可丢,丢失wsdl这个参数,访问不上

 

访问效果:

 

我们访问WSDL,查看:

能得到命名空间,对外的方法,webservice监听的url

 

还可以通过网络,发送xml,交互xml。去请求webservice,获得的xml需要自己解析,发送的xml也需要遵守一些请求的规范,比如说清楚一些信息。此处就略过,使用javax包下的生成,生成客户端请求类去请求webservice并获得结果,获得是结果不是xml所以也无需解析。否则自己来写的话,需要按照指定的格式去发送xml,在将请求webservice返回的xml进行解析得到结果,这是使用xml交互,下面是使用jdk自带的生成客户端代码,经过生成的代码去,无需解析,无需操心访问

 

打开cmd,使用Java的命令参数,wsimport -s  路径  -keep url -p  包名

wsimport -s D:\Code\Java\idea_web\idea\filedownload\bootj
sp\src\main\java\  -keep http://localhost:8081/k?wsdl -p com.kaige123.daomu.boot
jsp.webservice.t2

-s源文件放哪,-keep 访问地址,-p指定包名。包名需要指定,如果不指定,则会有问题。如果指定本包则是覆盖,外包也会有问题。因为包的名字沿用的是webservice的包,与-s指定的目录就会产生,要么找不到,那么有问题

 

在cmd输出命令后,再次查看工具下的包:

t2包的代码是生成的,t1包是之前自己写的webservice。

 

访问webservice服务类:

实例化生成的服务类,得到webservice,调用方法即可

 

调用效果:

 

服务器,收到请求:

 

webservice有什么用?在我看来,webservice与http是类似的,webservice作为服务者打开,生成出一溜可以调用的类,使用这些类去发起调用,获得数据。与http效果类似,可跨平台调用,可远程调用,如果语言有支持可调用其他语言,还可以跨语言调用,和http一样,目前我所看到的效果是。不过一个是http,一个是xml

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章