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] 举报,一经查实,本站将立刻删除。