WebService

​ wsdl 本身也是一个xml文档,我们通过wsdl 可以知道webservice如何调用

​ 2.结构

服务视图,webservice的服务结点,它包括了服务端点

为每个服务断点定义消息格式和协议细节

服务端点,描述web service 可被执行的操作方法,以及相关的消息,通过binding指向portType

定义一个操作方法的数据参数,可以有多个参数

定义web service 使用的全部数据类型

示例:公网天气查询开发

1.阅读别人提供的wsdl

​ Service服务视图:

WebService

portType服务端点:

WebService

2.使用wsimport生成客户端调用代码

​ 需要知道wsdl的地址

WebService

wsimport不支持soap1.2的客户端代码生成.

WebService

WebService

3.将生成代码拷贝到工程中,开发客户端

​ 1.

WebService

2.使用客户端生成代码调用服务端:

WebService

4.小结

这里我们说的是客户端生成代码调用服务端的第一种使用方法,这种方法的缺点就是硬编码

​ 将wehservice的地址封装在生成代码中,如果将来webservice地址改变,需要重新生成,修改客户端代码,不方便系统维护

客户端开发的第二种方式

jaxws标准方法

1.使用jdk的service类调用webservice

WebService

2.使用jaxws标准方法调用公网天气查询

WebService

服务端的创建

1.SEI(Service Endpoint Interface)

​ 编写SEI ,SEI在webservice中称之为portType,在java中称之为接口

public interface WeatherInterface{

public String queryWeather(String cityName);

}

2.SEI实现类

WebService

3.发布WebService服务

WebService

4.验证WebService服务是否发布成功

​ 在webservice的地址后边添加?wsdl, 查询webservice的使用说明书内容是否完整,如果wsdl内容完整,表示webservice发布成功

注解

​ 在我们自己开发服务端的时候,对应我们开发的服务端而生成的wsdl,在名称的定义上并不符合我们本意,所有我们需要对其进行修改. 注解就可以帮助我们完成名称的修改

1.@WebServer 定义服务,在public class上边

​ 1.targetNamespace : 指定命名空间

​ 2.name : porType 的名称

​ 3.portName : port的名称

​ 4.serviceName : 服务名称

​ 5.endpointInterface : SEI 接口地址,如果一个服务类实现了多个接口,只需要发布一个接口方法,可以通过次注解指定要发布的服务的接口

2.@WebMethod 定义方法,在公开方法上边

​ operationName:方法名

​ exclude:设置为true表示此方法不是webservice方法,反之则表示webservice方法

3.@WebResult 定义返回值,在方法返回值前边

​ name:返回结果值的名称

4.@WebParam 定义参数,在方法参数前边

​ name:指定参数的名称

5.注意

​ 如果修改webservice的接口内容,比如 namespace portType 必须要重新生成客户端调用码

CXF

1.介绍

​ CXF是一种开发WebService的框架,可以帮助我们更快速灵活的开发.

2.环境配置

​ 下载cxf

​ 配置环境变量: CXF_HOME =cxf的目录

​ Path=%CXF_HOME%\bin;

3.开发

​ 1.创建SEI及实现类

​ 2.发布服务代码

WebService

​ 3.使用cxf的wsdl2java工具生成客户端调用代码

​ 4.客户端调用服务

WebService

4. 小结:

​ CXF编程实现webservice:

​ JaxWsServerFactoryBean: 发布webservice服务

​ JaxWsProxyFactoryBean: 调用webservice服务端

CXF整合spring

1.介绍

​ cxf框架本身依赖spring,从官方下载cxf包中有spring的jar包

​ 上边使用的JaxWsServerFactoryBean 和 JaxWsProxyFactoryBean ,改为spring配置方式

​ 发布服务:使用spring和cxf整合的标签

​ 客户端调用服务:使用spring和cxf整合的标签

​ 上边的

2.开发

​ 1.创建工程,创建jar包

​ 2.开发SEI及实现类

​ 3.配置spring 的applicationContext.xml文件

​ 这样要注意用到的三个参数 ,SEI 实现类 webservice地址

WebService

4.在web.xml中配置cxf和spring

​ cxf的servlet用于解析cxf发布webservice

WebService

WebService

配置成功之后,启动服务器就可以完成服务的发布

​ 4.之后就是使用wsdl2java/wsimport 工具生成客户端调用代码

WebService

5.编写appliactionContext.xml

WebService

6.测试是否成功

​ 我们可以回去客户端bean ,然后调用服务端方法

WebService


分享到:


相關文章: