Webservice基础入门图解(看完可大体明白)
- 格式:doc
- 大小:754.70 KB
- 文档页数:27
WebService基础(WSDL、SOAP)Web Service:MS在2000年创造了Web Service这个词,它描述的是允许计算机网络(互联网是典型,但不局限与此)相互通信的一套标准,其核心之一是可扩展标记语言(XML),另一个则是HTTP。
5个基础标准(其中有两个是早就有了的通用标准,他们被用来实现Web Service方法,另外3个是专门用于Web Service的):1. XML 用来描述模型,格式和数据类型的通用格式,其他大多数标准都是用XML来表达的标准。
2. HTTP(HTTPS),互联网底层协议。
HTTP(S)是运用了互联网技术,通过网络发送Web Service的可能的协议之一。
3. WSDL(Web Services Description Language):用来定义服务接口。
描述服务的两个方面:服务的签名(名字和参数),以及服务的绑定和部署细节(协议和位置)。
4. SOAP是Web Service交换数据所准寻的协议。
5. UDDI,管理Web Service的标准(注册和找到服务)通常来说,使用WSDL标准是Web Service的关键特性,其他都是可选的。
例如,不一定非得使用SOAP和HTTP莱发送服务请求,也可以使用其他协议而仍然算在使用Web Service。
另外,UDDI扮演补充的角色,实际中也不用。
WSDL:怎样向别人介绍你的Web service有什么功能,以及每个函数调用时的参数呢?这就是WSDL。
WSDL标准有不同的版本,主要讲WSDL1.1和WSDL2.0。
相比较于1.1,2.0主要有:•WSDL2.0 is much more simple and easy to learn, some of the ambiguities of WSDL1.2 have removed.•Removal of message constructs. These are specified using the XML schema type system directly.•Improved support for HTTP bindings.•Unlike WSDL1.1, WSDL2.0 core specification supports for REST. Lawrence Mandel wrote a good article about REST support for WSDL2.0.WSDL文件自底向上描述服务。
WebService理论详解、JWS(JavaWebService)快速⼊门⽬录WebService (web服务)概述1、WebService(Web服务)是⼀种跨语⾔、跨平台的远程调⽤技术。
A、跨语⾔:服务器与客户端可以使⽤不同的语⾔开发,客户端都能调⽤服务器开放的接⼝,服务器只需要写⼀遍,任意语⾔的客户端都能进⾏调⽤。
B、跨平台:服务端程序和客户端程序可以运⾏在不同的操作系统上。
C、远程调⽤:指计算机 A(客户端) 上的程序可以调⽤计算机 B(服务器) 上的对象的⽅法。
如⽕车站进出站需要刷⾝份证,参加⼤型展会、演唱会时也可以刷⾝份证,显然⽕车站以及展览会、演唱会这些刷⾝份证的系统⾃⼰是不可能有全国⼈民的⾝份证数据的,它们都在公安局的数据库⾥,所以就可以理解成是公安⾝份证系统使⽤ webService 向外提供了接⼝,各地刷⾝份证的系统作为客户端调⽤⽽已。
2、WebService 是可互操作的分布式应⽤程序的⼀个平台、⼀个标准,它定义了应⽤程序如何在 Web 上实现互操作性,可以⽤任何语⾔在任何平台上写Web Service 服务端,然后可以通过 Web service 标准对这些服务进⾏操作。
3、如果系统需要为任意的第三⽅客户提供服务,那么服务器系统就可以使⽤ webService 技术,这样⽅便数据交互。
需要注意的是如果服务端接⼝⽅为webservice,则客户端也必须使⽤ webservice 。
web Service 应⽤场景?1. 同⼀家公司的新旧应⽤之间,⼦系统之间,如校内的招⽣系统、就业系统、缴费系统、考试系统等2. 不同公司的业务应⽤之间,如天猫⽹与中通物流系统交互3. ⼀些提供数据的内容聚合服务应⽤,如天⽓预报、股票⾏情、机票、邮政编码等如何发布⼀个 webService?1、定义 SEI(Service Endpoint Interface)服务终端接⼝,即 webService 提供的服务接⼝2、定义 SIB(Service Implemention Bean)服务实现类,即 webService 提供的服务接⼝的实现类3、发布 webService 服务 Endpoint publish(String address, Object implementor)如何请求⼀个 webService?1、根据服务的提供的 wsdl ⽂档⽣成客户端代码,可以使⽤ Java Jdk⾃带的 wsimport.exe⼯具,或者使⽤第三⽅如 Apache 的 CXF wsdl2java ⼯具既能⽣成服务端代码,也能⽣成客户端代码。
.NET/C# Web Service入门教程1.1、Web Service基本概念Web Service也叫XML Web Service WebService是一种可以接收从Internet或者I ntranet上的其它系统中传递过来的请求,轻量级的独立的通讯技术。
是:通过SOAP在W eb上提供的软件服务,使用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格式来封装各种不同类型的数据,并且发送到注册中心或者由注册中心来返回需要的数据。
1.2、XML Web Service的特点Web Service的主要目标是跨平台的可互操作性。
myEclipse开发webservice入门(2007-06-29 11:09:52)转载分类:技术参考说明:myeclipse5.1提供webservice开发插件,采用xfire引擎,另有apache的引擎Axis,两者实现方式略有差异,xfire的插件包在myEclipse安装目录MyEclipse\eclipse\plugins\com.genuitec.eclipse.ws.xfire_5.1.0下.首先:创建web service project1.新建project,选择web service project2.填写project name 和 web root folder,二者名字最好一致-->next3.默认显示需要添加的XFireServlet和services.xml,保持默认值即可-->next4.选择需要添加的包,xFire 1.2 Core Library-<MyEclipse Library>,该包默认选择.如果要在工程中开发一个客户端应用, XFire HTTP Client Libraries也是需要的.-->finish,web service project创建完成5.说明,web service project 的目录结构与web project 类似.多了一级WebServices,及该目录下的services.xml文件.还有多引用xFire 1.2 Core Libararies包.services.xml 用来注册添加的webservice其次:创建web service 实现类1.选择上述建好工程的WebServices,右键单击,依次选择new-->other-->MyEclipse-->Web Services-->Web Service-->next2.选择webservice部署的web service project(若多个web service project的话),勾选Create new Java Bean-->next3.填写如下信息:Web Service name:创建的web service 名字,即web service 类名Java Package:选择或新建web service 类所在包名将自动创建两个类,一个为类名前加I命名的接口,另一个是类名后加Impl命名的实现类,两个类的类名可修改.其它信息保持默认值即可-->finish4.创建完成后,自动将配置信息保存到services.xml文件里.5.可以根据需要修改生成的两个类,添加功能实现方法6.重复1-5可以在一个web service project工程里添加任意多个web service最后:调用web service1.如果要直接在当前应用下添加测试类调用web service的话,首先要添加调用包.方法:右键工程-->选择property-->Java Build Path-->Libraries-->Add Libraries-->MyEclipse Libraries-->XFire 1.2 HTTP Client Libraries2.新建一测试类,添加如下代码/**远程调用*/package com.capinfo.dao;import .MalformedURLException;import org.apache.axis.client.Call;import org.apache.axis.client.Service;import com.capinfo.vo.PersonVo;public class TranslateDaoImpl {/*** 调用service方法,实现翻译功能* @param originalText* @return*/public String translate(String originalText) {String translateText ="";try {/**TranslateWebService是webservice在services.xml注册的名字*/String endpoint ="http://localhost:8080/webservice_test/services/TranslateWebService"; Service service = new Service();Call call = (Call) service.createCall();call.setTargetEndpointAddress(new .URL(endpoint));/** 调用service的方法名*/call.setOperationName("translate");/** invoke方法的参数是Object数组,该数组元素个数与方法参数一致*/translateText= (String) call.invoke(new Object[] {originalText}); }catch (Exception e) {}return translateText;}}/**本地测试类调用的话,如下实现代码即可*/public static void main(String[] args) {// TODO Auto-generated method stubService srvcModel = newObjectServiceFactory().create(ITranslateWebService.class);XFireProxyFactory factory =new XFireProxyFactory(XFireFactory.newInstance().getXFire());String helloWorldURL ="http://localhost:8080/webservice_test/services/TranslateWebService";try{ITranslateWebService srvc = (ITranslateWebService)factory.create(srvcModel, helloWorldURL);String result = srvc.translate("hello world ljm");System.out.print(result);} catch (MalformedURLException e){e.printStackTrace();}}。
2009-03-31 02:50Web service到底是什么;在什么情况下你应该使用Web service?譬如:A公司使用了一套由PHP编写的业务系统,B公司使用了一套由C#编写的一套业务系统,C公司使用了由JAVA 编写的一套业务系统......,那么如果A公司与B公司某天有合作需求,而且有频繁的数据交换业务。
那么A公司的PHP系统能直接与B公司的C#系统进行交互吗?很显然这是两种不同的语言编写的系统,而且可能使用平台还不一样,如果直接访问是根本不可能办到的事。
难道我们就没有解决办法吗?难到非要大量人工来干预吗?•如果使用了WebService就能很好的解决这个问题, l从表面上看,Web service 就是一个应用程序,它向外界暴露出一个能够通过Web进行调用的API。
这就是说,你能够用编程的方法通过Web来调用这个应用程序。
我们把调用这个Web service 的应用程序叫做客户。
更精确的解释是: Web services是建立可互操作的分布式应用程序的新平台。
作为一个Windows 程序员,你可能已经用COM或DCOM建立过基于组件的分布式应用程序。
COM 是一个非常好的组件技术,但是我们也很容易举出COM并不能满足要求的情况。
Web service平台是一套标准,它定义了应用程序如何在Web上实现互操作性。
你可以用任何你喜欢的语言,在任何你喜欢的平台上写Web service ,只要我们可以通过Web service标准对这些服务进行查询和访问。
能够在一个分布式的计算环境中动态地描述、发布、发现和调用服务。
为什么我们需要WebService呢?一、软件变服务:现在专家组提出这么一个问题,比如:一套正版的Office软件需要700RMB,如果A用户只用到里面的最最变通的功能,像排版,制表格等;B用户使用了Office的大量功能,而且天天使用,那么对A用户来说,是不是有点很亏啊!我不经常用而且用的功能少,买这套软件的价格与B用户的价格缺是一样,按理说我应该比他便宜才对。
Webservice
1一、快速实现一个基于Jws的Webservice 项目
1.11、服务器的建立
1.1.11.1、创建接口
1.1.21.2、创建实现类
1.1.31.3、开启服务
可以生成一个wsdl的文件在服务地址中
1.22、客户端的建立
1.33、wsimport的使用
1.44、wsdl的简单讲解types:用来定义访问的类型
message:SOAP
portType:指明服务器的接口,并且通过operation绑定相应的in和out的消息:其中in表示参数,out表示返回值
binding:指定传递消息所使用的格式
service:指定服务所发布的名称
1.55、soap的使用和TCPMon
1.66、代码优先还是契约优先
代码优先
契约优先
服务类型
基于实体的服务·
基于功能的服务·
基于流程的服务(业务流程4 (BPM)ERP)工作流程(JBPM)
2二、XML的DTD和Schema
2.11、DTD简单介绍
2.22、schema入门
schema出现的目的是通过一个更加合理的方式来编写xml的限制文件(基于xml语法的方式)schema可以使用命名空间来支持多个名称相同的元素
schema可以很好的完成对java或者所有对象的修饰并且提供了大量的数据类型
2.2.12.1、命名空间
在xml中引入schema
通过文件路径引入
2.2.22.2、元素和属性
2.2.32.3、相关约束
2.33、深入schema
2.3.13.1、数据模型的创建2.3.23.2、相关的设计方案Russian Doll
只有一个根元素,通过嵌套的方式完成编写优点:结构清晰,根元素只有一个
缺点:元素无法重用
Salami Slice
优点:能够进行最大化重用缺点:根元素不清晰
Venetian Blind
2.3.33.3、schema与java的转换使用xjc可以完成schema到java的转换
2.44、java与XML
2.4.14.1、JAXB处理java和xml 2.4.24.2、Stax处理xml
基于光标的查找
基于迭代模型的查找
过滤器的使用
XPath的使用
使用XMLStreamWriter创建xml
使用Transformer更新节点信息
3三、SOAP消息操作SAAJ
3.11、通过自定义消息完成处理3.1.11.1、消息的创建
3.1.21.2、QName的讲解
通过QName可以创建出一个带有命名空间的XML节点
3.1.31.3、创建Dispatch发送消息
3.1.41.4、处理响应
3.1.51.5、基于负载的消息可以通过字符串进行传递
3.22、消息的其他处理方式3.2.12.1、消息头的处理
3.2.22.2、出错处理
3.33、通过Handler处理SOAP消息
LogicalHandler和SOAPHandler
LogicalHandler只能获取SOAPBody的信息SOAPHandler可以获取SOAPMessage的信息
处理顺序
3.3.13.1、SOAPHandler
创建一个类实现SOAPHandler
在HandlerMessage中编写代码
配置Handler
在服务上启动过滤链
服务端获取相应的SOAP信息
在服务器端可以通过多种方式获取
1、在服务端编写Handler通过Handler来截取信息
2、在服务端显示的申明一个参数来获取信息
牋22基于契约优先的方式来进行处理
3.3.23.2、LogicalHandler
4四、契约优先的编写方式
开发流程:
一、先写schema或者wsdl文件
二、根据这个文件生成一个客户端代码
三、编写实现类(在实现类上指定wsdlLocation)
四、发布服务
4.11、创建wsdl文件
在类路径下创建META-INF/wsdl
4.22、新疆wsdl并且编写文件1、编写type
2、编写message
3、编写portType(指定接口和方法)
4、编写binding,指定编码样式
5、编写Service
4.33、根据wsdl文件生成一个客户端使用wsimport生成,之后可以将除了接口之外的所有类都删除
4.44、编写一个实现类实现接口和服务
4.55、在实现类上指定wsdl的位置
4.66、启动服务
5五、JAX-WS的详细介绍6六、CXF的使用
7七、Rest。