Chinaunix首页 | 论坛 | 博客
  • 博客访问: 97939
  • 博文数量: 32
  • 博客积分: 151
  • 博客等级: 入伍新兵
  • 技术积分: 225
  • 用 户 组: 普通用户
  • 注册时间: 2010-03-11 16:18
文章分类

全部博文(32)

文章存档

2014年(27)

2013年(5)

我的朋友

分类: Web开发

2014-04-24 15:51:08

 WebService简介

WebService使用基于XML的消息处理,作为基本的数据通讯方式,消除使用不同组件模型、操作系统和编程语言之间存在的差异,使异构系统能作为单个计算机网络协同运行。WebService建立在一些通用协议的基础上,如HTTPSOAPXMLWSDLUDDI等。这些协议在涉及到操作系统、对象模型和编程语言时,没有任何倾向,因此具备很强的生命力。


WebService的特点


    封装性:WebService是一种部署在Web应用上的对象,具备良好的封装性。对使用者而言,仅能看到服务描述,而该服务的具体实现、运行平台都是透明,调用者无须关心,也无法关心。WebService作为整体提供服务。


        松散耦合:当WebService的实现发生改变时,调用者是无法感受到这种改变的。对调用者而言,只要服务实现的接口没有变化,具体实现的改变是完全透明的。


       使用标准协议:WebService所有的公共协议都使用标准协议描述、传输和交换。这些标准协议在各种平台上完全相同。


        高度整合的能力:由于WebService采用简单的、易理解的标准Web协议作为通信协议,完全屏蔽了不同平台的差异,无论是CORBADCOM还是EJB,都可以通过这种标准的协议进行互操作,实现系统的最高可整合性。


   高度的开放性:WebService可以与其他的WebService进行交互,具有语言和平台无关性,支持CORBAEJBDCOM等多种组件标准,支持各种通讯协议如:HTTPSMTPFTPRMI等。


WebService的主要技术

SOAPSimple Object Access Protocol 简单对象访问协议)是WebService的根本。它是一种具有扩展性的XML消息协议。SOAP允许一个应用程序向另一个应用程序发送XML消息,SOAP消息是从SOAP发送者传至SOAP接收者的单路消息,任何应用程序均可作为发送者或接收者。SOAP仅定义消息结构和消息处理的协议,与底层的传输协议独立。因此,SOAP协议能通过HTTPJMSSMTP协议传输。目前,大多采用HTTP传输SOAP消息。SOAP包括如下三个部分:

  SOAP封装结构:该结构定义消息的整体框架,确定消息中的内容,内容的处理者,内容哪些部分是可选的,哪些部分是必需的。

  SOAP编码规则:定义应用程序程序之间数据交换机制。

  SOAP RPC表示:定义远程过程调用的应答的协议。

SAOP封装、SOAP编码规则和SOAP RPC协议之外,该规范还定义了两个协议绑定,分别确定在有HTTP扩展框架、无HTTP扩展框架的情况下,如何在HTTP消息中传输SOAP消息。


WSDLWebService描述语言)

WSDLWebService Description Language WebService描述语言)使用XML描述WebService,包括访问和使用WebService所必需的信息,定义该WebService的位置、功能以及如何通信等描述信息。WSDL文件包含如下三个部分:

  WHAT部分:包括类型(types)、消息(messages)、portType元素,它们定义了 客户端及服务器端交互的消息及数据类型。

  HOW部分:包括binding元素,用于描述WebService的实现细节。binding元素将portType绑定到一种特定的协议。

  WHERE部分:包括Service元素,它将端口类型元素,binding元素以及WebService实际的地址放在一起,可在WSDL文件的最后部分看到Service元素。


   UDDI(统一描述、发现和整合协议)

UDDIUniversal DescriptionDescription and Integration统一描述、发现和整合协议)是一套信息注册规范,它具有如下特点:

基于Web

分布式。






====================以上资料网上CV过来的主要方便自己随时快捷查看===========================

1.安装AXIS。



1. docs:存放Axis的说明文档。

2. lib:存放Axis的二进制发布包。

3. samples:存放利用Axis发布WebService的示例代码。

4.webapps:存放安装Axis的基础应用。

5. xmls:存放相关配置文档。

6.还有LICENSE等相关说明文档。



安装Axis,首先必须保证系统已经正确安装了Web服务器,Tomcatwebapps路径下。然后打开浏览器,输入:



依次下载如下三个压缩文件:


1.jaf-1_1-fr.zip

2.javamail-1_4.zip

3.  xml-security-bin-1_2_1.zip



成功页面

将这三个压缩文件解压缩。将jaf-1_1-fr.zip压缩包中的activation.jar文件,复制到axis应用的WEB-INF\lib下;将javamail-1_4.zip压缩包中的mail.jar文件,复制到axis应用的WEB-INF/lib下;再将xml-security-bin-1_2_1.ziplibxmlsec-1.2.1.jarxalan.jar文件,复制到WEB-INF/lib下。




首先写个简单的类


写好后将这个类放到,tomcat6.0/webapps/axis/下将他的.java后缀名改为.jws



然后编写访问这个类


Java代码 复制代码 收藏代码
  1. public class Helloservice { 
  2.     public String returnString(String name){ 
  3.          
  4.         return "欢迎"+name+"学习WebService!"
  5.     } 




再次之前需要到如以下几个包




Java代码 复制代码 收藏代码
  1. package web.service; 
  2.  
  3. import org.apache.axis.client.Call; 
  4. import org.apache.axis.client.Service; 
  5. public class WebServiceTest { 
  6.  
  7.     /**
  8.      * @param args
  9.      */ 
  10.     public static void main(String[] args) { 
  11.         System.out.println("开始调用WebService");     
  12.         try
  13.             //WebService所在的url 
  14.             String endpoint = ""
  15.             //创建Serivce对象,Service对用用于创建Call对象 
  16.             Service service = new Service(); 
  17.             //创建Call对象,Call对象用于调用服务 
  18.             Call call = (Call)service.createCall(); 
  19.             //为Call对象设置WebService的url 
  20.             call.setTargetEndpointAddress(new java.net.URL(endpoint)); 
  21.             //为Call对象设置调用的方法名 
  22.             call.setOperationName("returnString"); 
  23.             //调用WebService的方法,并获得返回值 
  24.             String s = (String)call.invoke(new Object[] {"超人"}); 
  25.             //输出返回值 
  26.             System.out.println("返回值为:"+s); 
  27.        } catch (Exception e) { 
  28.            e.printStackTrace(); 
  29.            System.out.println("调用出现问题");      
  30.        } 
  31.     } 





最后运行下:


 

阅读(1108) | 评论(0) | 转发(0) |
0

上一篇:uddi学习总结

下一篇:指针的指针定义

给主人留下些什么吧!~~