WebService的整理:

来源:互联网 发布:淘宝怎么修改好评评价 编辑:程序博客网 时间:2024/05/29 15:11
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(带参数对象) //删除操作
原创粉丝点击