Webservice开发全程技术指导(一) 一、Web Service基本概念
Web Service由两部分组成 ·
SOAP--Web Service之间的基本通信协议。
WSDL--Web Service描述语言,它定义了Web Service做什么,怎么做和查询的信息。
二、什么是 Webservice?
Web 是使应用程序可以与平台和编程语言无关的方式进行相互通信的一项技术。Web 服务是一个软件接口,它描述了一组可以在网络上通过标准化的 XML 消息传递访问的操作。它使用基于 XML 语言的协议来描述要执行的操作或者要与另一个 Web 服务交换的数据。一组以这种方式交互的 Web 服务在面向服务的体系结构(Service-Oriented Architecture,SOA)中定义了特殊的 Web 服务应用程序。
三、什么是SOAP?
SOAP(Simple Object Access Protocol )简单对象访问协议是在分散或分布式的环境中交换信息并执行远程过程调用的轻量级协议,是一个基于XML的协议。使用SOAP,不用考虑任何特定的传输协议(最常用的还是HTTP协议),可以允许任何类型的对象或代码,在任何平台上,以任何一种语言相互通信。
SOAP包括四个部分:SOAP封装(envelop),封装定义了一个描述消息中的内容是什么,是谁发送的,谁应当接受并处理它以及如何处理它们的框架;SOAP编码规则(encoding rules),用于表示应用程序需要使用的数据类型的实例;SOAP RPC表示(RPC representation),表示远程过程调用和应答的协定;SOAP绑定(binding),使用底层协议交换信息。
应用中比较关注的是envelop,由一个或多个Header和一个Body组成。 SOAP在可互操作的基础 Web 服务协议栈中的位置。
四、 什么是WSDL?
WSDL(Web Service Description Language)Web服务器描述语言是用XML文档来描述Web服务的标准,是Web服务的接口定义语言,由Ariba、Intel、IBM、MS等共同提出,通过WSDL,可描述Web服务的三个基本属性:
·服务做些什么——服务所提供的操作(方法)
·如何访问服务——和服务交互的数据格式以及必要协议 ·服务位于何处——协议相关的地址,如URL
WSDL文档以端口集合的形式来描述Web服务,WSDL 服务描述包含对一组操作和消息的一个抽象定义,绑定到这些操作和消息的一个具体协议,和这个绑定的一个网络端点规范。
WSDL在Web 服务概念性协议栈中的位置。 WSDL描述语言一般包含三部分
l What部分:包括了type、message和portType元素
Type:定义了Web Service使用的数据结构(使用XML Schema定义) Message:一个Message是SOAP的基本通信元素。每个Message可以有一个或多个Part,每个Part代表一个参数。
PortType:消息汇总为不同的操作并归入到一个被称为portType的实体中。一个portType代表一个接口(Web Service支持的操作集合),每个Web Service可以有多个接口,它们都使用portType表示。每个操作又包含了input和 output部分。
2 How部分:包含binding元素
binding元素将portType绑定到特定的通信协议上(如HTTP上的SOAP协议) 3 Where部分:由service元素组成
它将portType,binding以及Web Service实际的位置(URI)放在一起描述
五、什么是WSDD?
WSDD就是WEB服务分布描述(Web Service Deployment Descriptor), 它定义了WEB服务的接口,如服务名、提供的方法、方法的参数等信息。
六、什么是UDDI?
UDDI就是统一描述、发现和集成(Universal Description, Discovery, and Integration)。UDDI用于集中存放和查找WSDL描述文件,起着目录服务器的作用。
Web服务中的角色、操作和构件。
服务提供者。从企业的角度看,这是服务的所有者。从体系结构的角度看,这是托管访问服务的平台。
服务请求者。从企业的角度看,这是要求满足特定功能的企业。从体系结构的角度看,这是寻找并调用服务,或启动与服务的交互的应用程序。服务请求者角色可以由浏览器来担当,由人或无用户界面的程序(例如,另外一个 Web 服务)来控制它。
服务注册中心。 这是可搜索的服务描述注册中心,服务提供者在此发布他们的服务描述。在静态绑定开发或动态绑定执行期间,服务请求者查找服务并获得服务的绑定信息(在服务描述中)。对于静态绑定的服务请求者,服务注册中心是体系结构中的可选角色,因为服务提供者可以把描述直接发送给服务请求者。同样,服务请求者可以从服务注册中心以外的其它来源得到服务描述,例如本地文件、FTP 站点、Web 站点、广告和服务发现(Advertisement and Discovery of Services,ADS)或发现 Web 服务(Discovery of Web Services,DISCO)。
七、客户端和服务器端
客户端
根据wsdl文件生成的一组相关的客户端类。然后,通过wsdl地址可以访问其他系统或应用所提供的功能。
通常Web Service可以有三种类型的客户
l 商业伙伴(Business Partner)--包括分发商,零售商以及大型消费者)
此类客户通过SOAP、WSDL、ebXML、UDDI等XML技术与Web Service连接
l 瘦客户--包括Web浏览器、PDA以及无线设备
该类客户通常经由轻量协议(如HTTP)与Web Service连接
l 肥客户--包括Applet、各类应用以及现存系统
通常使用重量级协议(如IIOP)连接Web Service
服务器端
也就是对外提供的一个接口(本质上就是:方法),让其他不同的系统或应用可以来进行访问,本系统的功能。它包括的内容: 1.一个对外接口 2.该接口的实现类
3.一个部署描述文件,描述这个服务(接口)。部署文件中的服务的信息,是可以通过axis的命令来生成的。
这些文件都是将包含在一个完整的web应用中的,当启动web容器的时候,就可以其他系统进行访问了
Webservice开发全程技术指导(二) 一、文件格式介绍
1.JWS (Java Web Service) Files - Instant Deployment 它是格式正确的java文件,文件的后缀
是.jws。如果发布,可以直接把它放到发布的工程根目录下。它不能指定包名。如果引用其他类,只能其他类也不能指定包名。 二、Axis工具简单操作命令和基本概念
1.显示帮助信息:java -Djava.ext.dirs=lib org.apache.axis.wsdl.WSDL2Java
生成客户端代码实例:前提是必须的在dos切换到axis的lib目录。然后执行这个命令。j java -Djava.ext.dirs=lib org.apache.axis.wsdl.WSDL2Java -a -H -d -s -t -S true -p com.qnuse.zj114.webservicehttp://134.96.71.58/QnInterface/HzGsyj.asmx?wsdl
2.WSDL2Java工具用于从WSDL文件生成客户端存根(stub)代码,服务端框架(skeleton)
代码以及WSDL中的数据类型文件(生成与之对应的Java代码)。 3.server-config.wsdd记录了axis已发布的Web服务的描述信息。
二、Axis工具wsdl2java命令参数解释 1. -N, --NStoPkg
mapping of namespace to package
2. -a, --all
generate code for all elements, even unreferenced ones
3. -p, --package
override all namespace to package mappings, use this package name instead 4. -h, --help
print this message and exit 5. -v, --verbose
print informational messages 6. -t, --testCase
为web service发行junit测试用例类
四、 server-config.wsdd文件解释
它是AXIS的配置文件,所有发布的服务都会在里面描述。
如果还没有server-config.wsdd文件,可以先写一个发布描述文件,然后用axis来生成,以后需要发布新的服务,直接往里面添加即可。
比如有一个HelloWorld.class类,里面有sayHello(String msg)方法,想把它发布webservices,先写发布文件deploy.wsdd文件,即SOAP服务发布描述文件deploy.wsdd http://xml.apache.org/axis/wsdd/\xmlns:java=\ 然后,进入dos窗口,执行下列命令:
java -cp %AXISCLASSPATH% org.apache.axis.client.AdminClient deploy.wsdd 即可生成server-config.wsdd文件。
如果想发布新的服务,也可以直接往server-config.wsdd里面添加service描述。
五、 查看发布的webservice
1.首先要查看工程的web.xml的配置情况,例如:zj114boss的web.xml中对axis的配置是:
2.启动容器,或看测试环境。在IE上键入:http://134.96.71.27:8080/zj114boss-1.0/webservice你将看到全部发布的service。 3.看详细的wsdl内容。例如:查看生产环境http://134.96.71.73/usboss/webservice/ssoService?wsdl
六、序列化与反序列化
序列化/反序列化器在英文中的对应翻译是Serializer/Deserializer,一个序列化器的功能是遵循一定的映射规则和编码风格,将一种类型的JAVA对象通过某种特定的机制,转换成
相关推荐: