springMvc项目集成cxf实现webService通信方式的详细步骤
目录
添加webService服务接口的bean文件 applicationContext-cxf.xml
提供webservice服务端接口(此处如果项目不需要对外提供服务可以跳过)
基于动态代理工厂类JaxWsDynamicClientFactory调用
Web Service基本概念
Web Service也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量级的独立的通讯技术。是:通过SOAP在Web上提供的软件服务,使用WSDL文件进行说明,并通过UDDI进行注册。
XML:(Extensible Markup Language)扩展型可标记语言。面向短期的临时数据处理、面向万维网络,是Soap的基础。
Soap:(Simple Object Access Protocol)简单对象存取协议。是XML Web Service 的通信协议。当用户通过UDDI找到你的WSDL描述文档后,他通过可以SOAP调用你建立的Web服务中的一个或多个操作。SOAP是XML文档形式的调用方法的规范,它可以支持不同的底层接口,像HTTP(S)或者SMTP。
WSDL:(Web Services Description Language) WSDL 文件是一个 XML 文档,用于说明一组 SOAP 消息以及如何交换这些消息。大多数情况下由软件自动生成和使用。
UDDI (Universal Description, Discovery, and Integration) 是一个主要针对Web服务供应商和使用者的新项目。在用户能够调用Web服务之前,必须确定这个服务内包含哪些方法,找到被调用的接口定义,还要在服务端来编制软件,UDDI是一种根据描述文档来引导系统查找相应服务的机制。UDDI利用SOAP消息机制(标准的XML/HTTP)来发布,编辑,浏览以及查找注册信息。它采用XML格式来封装各种不同类型的数据,并且发送到注册中心或者由注册中心来返回需要的数据。
调用原理
环境配置
pom.xml引入jar包依赖
web.xml设置servelet
注意:添加位置别搞错啦如下图:
添加webService服务接口的bean文件 applicationContext-cxf.xml
注意文件位置:此处我web.xml配置的xml扫描路劲为
因此我的文件是在src/main/resources/spring/applicationContext-cxf.xml,文件内容如下
提供webservice服务端接口(此处如果项目不需要对外提供服务可以跳过)
编写webService服务的java类
先写一个interface接口
再写它的实现类:
注意:命名空间targetNamespace 是你接口所在的package包名倒装的全路径
客户端调用webService服务
客户端调用的方式有多种,个人认为根据自己实际情况使用吧
基于动态代理工厂类JaxWsDynamicClientFactory调用
目录
添加webService服务接口的bean文件 applicationContext-cxf.xml
提供webservice服务端接口(此处如果项目不需要对外提供服务可以跳过)
基于动态代理工厂类JaxWsDynamicClientFactory调用
基于httpclient调用webservice服务
上面为工具类,如有不合适可以根据自己的请求内容作出修改,调用方式
String response = accessService(wsdl, ns, method,reqXml);
还有一种axis2调用webService的方式
感兴趣的可以自己下去研究,小编是在曾经一次项目中调用银行的接口时用过一次,就是多种方式,如果上述两种方式都有问题时,再考虑第三种。因为cxf需要服务端和客户端的版本一致。所以有时候包的版本不一致时,会有问题。
- 点赞
- 收藏
- 关注作者
评论(0)