明白了Java-WebService原理对你web开发真的太重要了

webservice基本概念
简介
webservice即web服务,它时一种跨编程语言和跨操作系统平台的远程调用技术
Java中共有三种Webservice规范,分别是JAX-WS(JAX-RPC),JAXM&&SAAJ,JAX-RS 一三用的比较多
webservice三要素:soap wsdl uddi

术语
webservice开发规范
java中共有三种webservice规范
1JAX-WS

2,JAXM&&SAAJ

3,JAX-RS

SOAP协议

SOAP

WSDL说明书

UDDI

webService
WebService学习笔记
1.应用场景:
• 解决企业内部异构系统的整合问题
• 解决一些公共资源的复用问题
2.使用案例(调用QQ接口,查看QQ是否在线)
2.1 调用QQ是否在线服务
准备工作:
在网上找到QQ在线状态的WEB服务,其中:
Endpoint:  http://www.webxml.com.cn/webservices/qqOnlineWebService.asmx
WSDL :  http://www.webxml.com.cn/webservices/qqOnlineWebService.asmx?wsdl
测试实例:
• 首先,打开命令行,定位到java项目所在的src文件下,输入
wsimport -s. http://www.webxml.com.cn/webservices/qqOnlineWebService.asmx?wsdl
编译完成后,会自动生成代码:
此时,我新建了client文件夹,用于测试.
• 在测试之前,在浏览器地址栏输入:http://www.webxml.com.cn/webservices/qqOnlineWebService.asmx?wsdl
页面如下:
此时,只需关注两个地方,
1.<wsdl:service name="qqOnlineWebService">\

  1. <wsdl:portType name="qqOnlineWebServiceSoap">

    在该段分支下的operation为方法的名称.
    • 接着 通过java代码来测试服务

运行java代码:
  
   Y代表在线,运行成功.

2.2 天气预报(解决服务出错)

准备工作

Endpoint:  http://www.webxml.com.cn/WebServices/WeatherWebService.asmx

WSDL :  http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl

测试实例

出错

解决

将网页源代码复制到本地:

在ieda里面新建wsdl文件

将本地的:

<s:element ref="s:schema"/><s:any/>

替换成:

<s:any minOccurs="2" maxOccurs="2"/>

修改完成之后,重新运行cmd命令,将远程服务换成本都服务.

此时代码生成成功.

客户端调用代码:

运行结果:

此时,天气预报接口服务调用成功.

3.通过注解规范化发布接口

3.1 相关注解

• @WebService

• @WebMethod

• @WebResult

• @WebParam

@WebParam和@WebResult 一般贴在方法上,提高可读性

分别贴在对应的位置上:

浏览器打开:

@WebMethod

可以使某个方法不对外开放,@WebMethod(exclude=true)

@WebService注解

可以发布指定的服务,@WebService(endpointInterface = '指定的接口名') -----一般用于实现类上

如:@WebService(endpointInterface = "cn.wjh1832.webservice.IWeatherService")

4.cxf

4.1简介

4.2环境搭建

下载cxf,配置cxf的环境变量.

配置完成后,在cmd命令行输入 wsdl2java 回车,出现以下内容代表安装成功.

4.3CXF发布服务

服务端

步骤:

• 拷jar包

• 写接口,实现类

• 发布服务

• 在浏览器访问 http://localhost:8888/weatherService?wsdl

发布成功

客户端

在命令行输入 wsdl2java -d . http://localhost:8888/weatherService?wsdl

代码生成成功.

客户端调用

4.4 cxf调用网络服务

案例: 以手机归属地查询为例

http://ws.webxml.com.cn/WebServices/MobileCodeWS.asmx?wsdl

客户端步骤与手动发布的步骤一样.

webService

WebService学习笔记

1.应用场景:

  • 解决企业内部异构系统的整合问题
  • 解决一些公共资源的复用问题

2.使用案例(调用QQ接口,查看QQ是否在线)

2.1 调用QQ是否在线服务

准备工作:

在网上找到QQ在线状态的WEB服务,其中:

Endpoint:  http://www.webxml.com.cn/webservices/qqOnlineWebService.asmx

WSDL :  http://www.webxml.com.cn/webservices/qqOnlineWebService.asmx?wsdl

测试实例:

编译完成后,会自动生成代码:

此时,我新建了client文件夹,用于测试.

页面如下:

此时,只需关注两个地方,

 1.<wsdl:service name="qqOnlineWebService">

  1. <wsdl:portType name="qqOnlineWebServiceSoap">

在该段分支下的operation为方法的名称.

  • 接着 通过java代码来测试服务

运行java代码:

imagewiuwieng

Y代表在线,运行成功.

2.2 天气预报(解决服务出错)

准备工作

          Endpoint:  <http://www.webxml.com.cn/WebServices/WeatherWebService.asmx>

****WSDL :  http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl

测试实例

出错

解决

将网页源代码复制到本地:

在ieda里面新建wsdl文件

将本地的:

            <s:element ref="s:schema"/><s:any/>

替换成:

        <s:any minOccurs="2" maxOccurs="2"/>

修改完成之后,重新运行cmd命令,将远程服务换成本都服务.

此时代码生成成功.

客户端调用代码:

运行结果:

此时,天气预报接口服务调用成功.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值