微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

WebService的学习一

Web Services是由企业发布的完成其特定商务需求的在线应用服务,其他公司或应用软件能够通过Internet来访问并使用这项在线服务。 用简单点的话说,就是系统对外的接口! 它是一种构建应用程序的普遍模型,可以在任何支持网络通信的操作系统中实施运行;它是一种新的web 应用程序分支,是自包含、自描述、模块化的应用,可以发布、定位、通过web调用。WebService是一个应用组件,它逻辑性的为其他应用程序提供数据与服务.各应用程序通过网络协议和规定的一些标准数据格式(Http,XML,Soap)来访问WebService,通过WebService内部执行得到所需结果.Web Service可以执行从简单的请求到复杂商务处理的任何功能。一旦部署以后,其他WebService应用程序可以发现并调用它部署的服务。 技术和规则   在构建和使用Web Service时,主要用到以下几个关键的技术和规则:   1.XML:描述数据的标准方法.   2.soAP:简单对象访问协议.   3.WSDL:Web服务描述语言.   4.uddi(Universal Description,discovery and Integration):通用描述、发现与集成,它是一种独立于平台的,基于XML语言的用于在互联网上描述商务的协议。 1.首先集成Apacha CXF WebService 到 Spring 框架中;     apache cxf 下载地址:http://people.apache.org/dist/incubator/cxf/2.0.4-incubator/apache-cxf-2.0.4-incubator.zip    在spring context配置文件中引入以下cxf配置  Xml代码   <import resource="classpath*:meta-inf/cxf/cxf.xml" />   <import resource="classpath*:meta-inf/cxf/cxf-extension-soap.xml" />   <import resource="classpath*:meta-inf/cxf/cxf-servlet.xml" />   在web.xml中添加过滤器:  Xml代码   <servlet>       <servlet-name>CXFServlet</servlet-name>       <servlet-class>           org.apache.cxf.transport.servlet.CXFServlet       </servlet-class>   </servlet>   <servlet-mapping>       <servlet-name>CXFServlet</servlet-name>       <url-pattern>/services/*</url-pattern>   </servlet-mapping>  2.开发服务端WebService接口:  Java代码   /**   * WebService接口定义类.   *    * 使用@WebService将接口中的所有方法输出为Web Service.   * 可用annotation对设置方法、参数和返回值在WSDL中的定义.   */   @WebService   public interface WebServiceSample {             /**       * 一个简单的方法,返回一个字符串       * @param hello       * @return       */       String say(String hello);              /**       * 稍微复杂一些的方法,传递一个对象给服务端处理       * @param user       * @return       */       String sayUserName(               @WebParam(name = "user")                UserDTO user);              /**       * 最复杂的方法,返回一个List封装的对象集合       * @return       */       public        @WebResult(partName="o")       ListObject findUsers();      }   由简单到复杂定义了三个接口,模拟业务需求;  3.实现接口  Java代码   /**   * WebService实现类.   *    * 使用@WebService指向Interface定义类即可.   */   @WebService(endpointInterface = "cn.org.coral.biz.examples.webservice.WebServiceSample")   public class WebServiceSampleImpl implements WebServiceSample {          public String sayUserName(UserDTO user) {           return "hello "+user.getName();       }          public String say(String hello) {           return "hello "+hello;       }          public ListObject findUsers() {           ArrayList<Object> list = new ArrayList<Object>();                      list.add(instancUser(1,"lib"));           list.add(instancUser(2,"mld"));           list.add(instancUser(3,"lq"));           list.add(instancUser(4,"gj"));           ListObject o = new ListObject();           o.setList(list);           return o;       }              private UserDTO instancUser(Integer id,String name){           UserDTO user = new UserDTO();           user.setId(id);           user.setName(name);           return user;       }   }   4.依赖的两个类:用户对象与List对象  Java代码   /**   * Web Service传输User信息的DTO.   *    * 分离entity类与web service接口间的耦合,隔绝entity类的修改对接口的影响.   * 使用JAXB 2.0的annotation标注JAVA-XML映射,尽量使用认约定.   *    */   @XmlAccessorType(XmlAccesstype.FIELD)   @XmlType(name = "User")   public class UserDTO {          protected Integer id;          protected String name;          public Integer getId() {           return id;       }          public void setId(Integer value) {           id = value;       }          public String getName() {           return name;       }          public void setName(String value) {           name = value;       }   }  

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐