WebService的整理:

WebService:
    CXF:CXF 是目前最主流 WebService 开发框架 ,由 Apache 提供
    CXF WebService 开发,主要分为两种服务提供方式 WS 、RS
        WS:
            服务端
                1.导入对应点jar包
                2.编写服务
                    接口
                        @WebService                     //@WebService 使用类上面,标记类是 WebService 服务提供对象
                        public interface IXxxService{
                            @WebMethod                  //@WebMethod 使用方法上面,标记方法 是 WebService 服务提供方法
                            public 返回类型 method(参数);
                            ...
                        }
                    实现类
                            //@WebService 注解设置 endPointInterface 接口服务完整类名, servicename 服务名称
                            //想将 UserService 的服务方法,发布到网络上,给其它系统调用
                        @WebService(endPointInterface="接口的全类名",servicename="userservice")
                        public class XxxServiceImpl implements IXxxService{
                            public 返回类型 method(参数){
                                业务操作
                                return 返回值
                            }
                            ...
                        }
                    模型类
                3.配置web.xml   配置CXFServlet:
                    <servlet>
                        <servlet-name>CXFService</servlet-name>
                        <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
                        <load-on-startup>1</load-on-startup>
                    </servlet>
                    <servlet-mapping>
                        <servlet-name>CXFService</servlet-name>
                        <url-pattern>/services/*</url-pattern>
                    </servlet-mapping>
                4.配置applicationContext.xml
                    <?xml version="1.0" encoding="UTF-8"?>
                    <beans xmlns="http://www.springframework.org/schema/beans"
                        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jaxws="http://cxf.apache.org/jaxws"
                        xsi:schemaLocation="
                        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
                        http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd">
                        <jaxws:server id="userService" address="/客户端访问服务路径" 
                            serviceClass="配置接口类全名">
                            <jaxws:serviceBean>
                                <bean class="配置实现类全名" />
                            </jaxws:serviceBean>
                        </jaxws:server>
                    </beans>
                5.访问路径
                    http://ip:port/项目/services(web.xml CXFServlet url-pattern)/address

            客户端:
                1.导入对应的jar包
                2.配置applicationContext.xml
                    <?xml version="1.0" encoding="UTF-8"?>
                    <beans xmlns="http://www.springframework.org/schema/beans"
                        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jaxws="http://cxf.apache.org/jaxws"
                        xsi:schemaLocation="
                        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
                        http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd">
                        <!-- 
                            address 客户端访问服务路径 
                            serviceClass 配置接口
                            serviceBean 配置实现类 
                         -->
                        <jaxws:client id="唯一标识" 
                            serviceClass="服务接口全类名" 
                            address="访问服务地址" >
                            <!-- 来源消息拦截器 -->
                            <jaxws:inInterceptors>
                                <bean class="org.apache.cxf.interceptor.LoggingInInterceptor"/>
                            </jaxws:inInterceptors>
                            <!-- 输出消息拦截器 -->
                            <jaxws:outInterceptors>
                                <bean class="org.apache.cxf.interceptor.LoggingOutInterceptor" />
                            </jaxws:outInterceptors>
                        </jaxws:client>
                    </beans>
                3.在使用的类中通过注入,完成功能的调用
                    @Autowired
                    private IXxxService proxy;
                    使用proxy调用方法

        RS: 基于 HTTP 协议, 支持多种消息格式,比如 XML 、JSON 更易于实现缓存机制 
            服务端:
                1.导入对应点jar包
                2.编写服务
                    接口
                        public interface IXxxService{
                            @Path
                            @Produces | @Consumes
                            @GET|@POST|@PUT|@DELETE
                            public 返回类型 method(@PathParam("")参数);
                            ...
                        }
                    实现类
                        public class XxxServiceImpl implements IXxxService{
                            public 返回类型 method(参数){
                                业务操作
                                return 返回值
                            }
                            ...
                        }
                    模型类:在类上加注解:
                        @XmlRootElement(name="类名")
                3.配置web.xml
                    CXFServlet  url-pattern /services/*
                4.配置applicationContext.xml
                    <?xml version="1.0" encoding="UTF-8"?>
                    <beans xmlns="http://www.springframework.org/schema/beans"
                        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jaxrs="http://cxf.apache.org/jaxrs"
                        xsi:schemaLocation="
                        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
                        http://cxf.apache.org/jaxrs http://cxf.apache.org/schemas/jaxrs.xsd">
                        <jaxrs:server id="userService" address="/发布服务地址 " 
                                        serviceClass="接口的全类名">
                            <jaxrs:serviceBeans>
                                <bean class="服务实现类全名" />
                            </jaxrs:serviceBeans>
                            <!-- 日志记录 -->
                            <jaxrs:inInterceptors>
                                <bean class="org.apache.cxf.interceptor.LoggingInInterceptor"/>
                            </jaxrs:inInterceptors>
                            <jaxrs:outInterceptord>
                                <bean class="org.apache.cxf.interceptor.LoggingOutInterceptor"/>
                            </jaxrs:outInterceptord>
                        </jaxrs:server>     
                    </beans>
                5.访问地址
                <!--address: 发布服务地址: -->
                http://ip:port/项目/services(web.xml CXFServlet url-pattern)/address/path(method)[/参数]
            客户端:
                WebClient.create(url)//创建连接
                        .type(MediaType.APPLICAITON_XML)//设置参数传递类型
                        .accept(MediaType.APPLICATION_JSON) //设置接收返回值的类型
                        .get(模型类.class) //设置查询 并设置模型类类型
                        .getCollection(模型类.class) //设置批量查询 并设置模型类类型
                        .put(带参数对象) //修改操作
                        .post(带参数对象) //新增操作
                        delete(带参数对象) //删除操作
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值