webservice快速入门详细学习一

一直对webservice一知半解,总感觉没有彻底的弄清楚,故此,博主这里再详细介绍下:

通过使用 Web Services,您的应用程序可以向全世界发布信息,或提供某项功能。

Web Services 脚本平台需支持 XML + HTTP。

什么是Web Services?

  • Web Services 是应用程序组件
  • Web Services 使用开放协议进行通信
  • Web Services 是独立的(self-contained)并可自我描述
  • Web Services 可通过使用UDDI来发现
  • Web Services 可被其他应用程序使用
  • XML 是 Web Services 的基础

WebService定义: 顾名思义就是基于Web的服务。它使用Web(HTTP)方式,接收和响应外部系统的某种请求。从而实现远程调用。

Webservice理解:我们可以调用互联网上查询天气信息Web服务,然后将它嵌入到我们的程序(C/S或B/S程序)当中来,当用户从我们的网点看到天气信息时,他会认为我们为他提供了很多的信息服务,但其实我们什么也没有做,只是简单了调用了一下服务器上的一段代码而已。WebSerice可以将你的服务(一段代码)发布到互联网上让别人去调用,也可以调用别人机器上发布的WebService,就像使用自己的代码一样.。

它如何工作?

基础的 Web Services 平台是 XML + HTTP。

HTTP 协议是最常用的因特网协议。

XML 提供了一种可用于不同的平台和编程语言之间的语言。

Web services 平台的元素:

  • SOAP (简易对象访问协议)
  • UDDI (通用描述、发现及整合)
  • WSDL (Web services 描述语言)
  1. Webservice调用

2.1学习webservice调用的预备知识

名词1:XML. Extensible Markup Language -扩展性标记语言 

XML,用于传输格式化的数据,是Web服务的基础。

namespace-命名空间。

xmlns=“http://demo.cn” 使用默认命名空间。

xmlns:demo=“http://itcast.cn”使用指定名称的命名空间。

 

名词2:WSDL – WebService Description Language – Web服务描述语言。

通过XML形式说明服务在什么地方-地址。

通过XML形式说明服务提供什么样的方法 – 如何调用。

 

名词3:SOAP-Simple Object Access Protocol(简单对象访问协议)

SOAP作为一个基于XML语言的协议用于有网上传输数据。

SOAP = 在HTTP的基础上+XML数据。

SOAP是基于HTTP的。

SOAP的组成如下:

Envelope – 必须的部分。以XML的根元素出现。

Headers – 可选的。

Body – 必须的。在body部分,包含要执行的服务器的方法。和发送到服务器的数据。

2.2 webservice服务网址

Webservice服务网站:http://www.webxml.com.cn

调用webservice步骤

  1. 打开WSDL文档
  2. 从下往上读WSDL文档,先找到Services(服务访问点集合),根据Services里面binding属性找到binding元素,再根据binding元素的type属性找到绑定的portType(服务类)
  3. 根据WSDL的地址生成客户端代码wsimport -s . -p com.rl.trans d:/wsCode/EnglishChinese.wsdl
  4. 把客户端代码拷贝到项目中
  5. 创建服务访问点集合对象
  6. 根据服务访问点获得服务类
  7. 调用服务类的方法

jdk发布webservice服务

  1. 注意:用Jdk1.7.0_21以后的版本发布一个WebService服务.

    说明: 在JDK1.7中JAX-WS规范定义了如何发布一个webService服务。

     JAX-WS是指Java Api for XML – WebService.

    与Web服务相关的类,都位于javax.xml.ws.*包中。

    主要类有:

  2. @WebService - 它是一个注解,用在类上指定将此类发布成一个webservice服务.
  3. Endpoint – 此类为端点服务类,它的方法publish用于将一个已经添加了@WebService注解对象绑定到一个地址的端口上。Endpoint是jdk提供的一个专门用于发布服务的类,它的publish方法接收两个参数,一个是本地的服务地址,二是提供服务的类。它位于javax.xml.ws.*包中。
  4. static Endpoint.publish(String address, Object implementor) 在给定地址处针对指定的实现者对象创建并发布端点。stop方法用于停止服务。

    其他注意事项:

  5. 给类添加上@WebService注解后,类中所有的非静态方法都将会对外公布。不支持静态方法,final方法。
  6. 如果希望某个方法(非static,非final)不对外公开,可以在方法上添加@WebMethod(exclude=true),阻止对外公开。
  7. 如果一个类上,被添加了@WebService注解,则必须此类至少有一个可以公开的方法,否则将会启动失败。
  8. 服务类中不能没有方法
  9. @WebMethod(exclude=true)屏蔽方法

 

 

 

 

你可能感兴趣的:(webservice)