webservice

WebService
一、 什么是webservice
1、webservice定义

2、三种规范
二、webservice应用场景(socket区别)

三、Webservice三要素:
1. soap协议
soap不是webservice专有协议,比如soap还应用于tr069(终端管理协议,基于soap的应用层协议)
3.1.1soap的定义

3.1.2 Soap常用的有两种
Soap 1.1
Soap1.2版本

使用方式:

3.1.3 soap协议体结构:
3.1.4利用TCP/IPmonitir监管soap协议

    配置:

• 2、wsdl
• wsdl阅读从下往上读 service ,binding,protType
3.2.1wsdl:结构
3.2.2wsdl地址(服务端的地址+?wsdl)
http://127.0.0.1:12345/weather?wsdl

3、UDDI目录服务
四、 利用jax-ws进行客户端 ,服务端的开发
1、总体思路 (数据格式以XMl为例)
2、服务端开发

3、客户端开发
三种方式(不管服务端采用什么样的技术,不影响客户端)
步骤:
4.3.1 利用工具生成客户端代码
Jdk自带的工具 wsimport:
作用: 根据wsdl地址生成生成客户端调用代码
(1) 进入cmd
(2) 输入如下代码:

(3) 将生成的代码拷到客户端下
4.3.2、调用服务端:
4.3.2.1.利用wsimport生成的代码直接调用服务端
代码如下:
//创建服务视图对象
WeatherInterficeImplService weatherInterficeImplService = new WeatherInterficeImplService();
//通过服务视图对象得到portype
WeatherInterficeImpl weatherInterficeImplPort = weatherInterficeImplService.getWeatherInterficeImplPort();
//调用webservice的方法
String weather = weatherInterficeImplPort.queryWeather(“郑州”);
缺点:
4.3.2.2使用jaxws标准方法:
优点:
1、首先利用wsimport生成客户端调用代码:
2、调用服务端:
//wsdl的路径
URL wsdlDocumentLocation = new URL(“http://127.0.0.1:54321/weather?wsdl“);
//从wsdl中找到服务视图
//第一个参数:wsdl的命名空间
//第二个参数:服务视图名称
QName serviceName = new QName(“http://server.weather.jaxws.ws.itcast.cn/“, “WeatherInterfaceImplService”);

//第一步使用Service创建服务视图
Service service =Service.create(wsdlDocumentLocation, serviceName);

//从服务视图得到portType对象
//参数:portType
WeatherInterfaceImpl weatherInterfaceImpl = service.getPort(WeatherInterfaceImpl.class);

//调用porttype方法
String result = weatherInterfaceImpl.queryWeather(“北京”);
System.out.println(result);
}
五、xml解析
六、jaxws 支持pojo开发
七、jaxws 常用注解:
@WebService(
//指定wsdl的命名空间
targetNamespace=”http://weather.itcast.cn/”,
//指定porttype的名称
name=”WeatherInterface”,
serviceName=”WeatherService”
//指定哪个接口发布服务
//endpointInterface
) )
public @WebResult(name=”result”) List queryWeather(@WebParam(name=”cityName”) String city);

不使用注解:

八、使用cxf框架:

目前市面上有三种框架:

  1. 客户端
    (1)生成服务端调用代码方式:
    1、 进入cmd
    2、 进入:D:\apache-cxf-3.1.8\bin目录
    3、 执行:
    D:\apache-cxf-3.1.8\bin>wsdl2java.bat -p com.wangyue.WebService -d e:\ -all http
    ://localhost:8080/easyuishop/WebService/sysUserService?wsdl
    注意事项:

4、copy 生成到E盘下的代码到项目
5、用Eclipse讲代码打包成jar包,传给客户。
(2)调用服务端代码:
//创建代码工厂
JaxWsProxyFactoryBean jaxWsProxyFactoryBean = new JaxWsProxyFactoryBean();
//设置接口类型(portType)
jaxWsProxyFactoryBean.setServiceClass(WeatherInterface.class);
//设置webservice地址
jaxWsProxyFactoryBean.setAddress(“http://127.0.0.1:12345/weather“);
//创建webservice的调用实例
WeatherInterface weatherInterface = (WeatherInterface) jaxWsProxyFactoryBean.create();
//调用webService
List weatherList = weatherInterface.queryWeather(“zhengzhou”);
for (Weather weather : weatherList) {
System.out.println(“最高温度:”+weather.getMinTemp() +” 最低温度:”+weather.getMaxTemp() +”今天温度”+weather.getTemperature() );
Date time = weather.getDate().toGregorianCalendar().getTime();
System.out.println(time);
}
}

  1. 服务端
    Cx SEI开发

    //指定jaxws发布soap协议的webservice
    JaxWsServerFactoryBean jaxWsServerFactoryBean = new JaxWsServerFactoryBean();
    //指定webservice地址
    jaxWsServerFactoryBean.setAddress(“http://127.0.0.1:12345/weather“);
    //指定porttype
    jaxWsServerFactoryBean.setServiceClass(WeatherService.class);
    //指定服务类对象
    jaxWsServerFactoryBean.setServiceBean(new WeatherServiceImpl());
    //发布服务
    jaxWsServerFactoryBean.create();

  2. *与spring结合
  3. cxf发布soap1.2
  4. Cxf发布rest风格的webService
  5. Restful风格的webService和wsdl的webservice
    https://blog.csdn.net/sunroyi666/article/details/51939802
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值