`
SIHAIloveYAN
  • 浏览: 124451 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类

webService教程(1)

 
阅读更多

一:简介

Web service是一个平台独立的,低耦合的,自包含的、基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言下的一个子集)标准来描述、发布、发现、协调和配置这些应用程序,用于开发分布式的互操作的应用程序。

Web Service技术, 能使得运行在不同机器上的不同应用无须借助附加的、专门的第三方软件或硬件, 就可相互交换数据或集成。依据Web Service规范实施的应用之间, 无论它们所使用的语言、 平台或内部协议是什么, 都可以相互交换数据。Web Service是自描述、 自包含的可用网络模块, 可以执行具体的业务功能。Web Service也很容易部署, 因为它们基于一些常规的产业标准以及已有的一些技术,诸如标准通用标记语言下的子集XML、HTTP。Web Service减少了应用接口的花费。Web Service为整个企业甚至多个组织之间的业务流程的集

二:需要知识

XML. Extensible Markup Language -扩展性标记语言
XML,用于传输格式化的数据,是Web服务的基础。
namespace-命名空间。
xmlns=“http://itcast.cn” 使用默认命名空间。
xmlns:itcast=“http://itcast.cn”使用指定名称的命名空间。

WSDL – WebService Description Language – Web服务描述语言。
通过XML形式说明服务在什么地方-地址。
通过XML形式说明服务提供什么样的方法 – 如何调用。

SOAP-Simple Object Access Protocol(简单对象访问协议)
SOAP作为一个基于XML语言的协议用于有网上传输数据。
SOAP = 在HTTP的基础上+XML数据。
SOAP是基于HTTP的。
SOAP的组成如下:
Envelope – 必须的部分。以XML的根元素出现。
Headers – 可选的。
Body – 必须的。在body部分,包含要执行的服务器的方法。和发送到服务器的数据。

三:wsdl语言解析

Wsdl文档从下往上读

Types - 数据类型定义的容器,它使用某种类型系统(一般地使用XML Schema中的类型系统)。(入参和出参的数据类型)
Message - 通信消息的数据结构的抽象类型化定义。使用Types所定义的类型来定义整个消息的数据结构(入参和出参)。
Operation - 对服务中所支持的操作的抽象描述,一般单个Operation描述了一个访问入口的请求/响应消息对(方法)。
PortType - 对于某个访问入口点类型所支持的操作的抽象集合,这些操作可以由一个或多个服务访问点来支持(服务类)。
Binding - 特定服务访问点与具体服务类的绑定(不看内容,看关系)。
Port - 定义为webservice单个服务访问点。

Service- 相关服务访问点的集合。

四:webService调用网站

http://www.webxml.com.cn

五:生成客户端代码

  1. wsimport是jdk自带的,可以根据wsdl文档生成客户端调用代码的工具.
  2. 服务器端的WebService是用什么语言写的,都将在客户端生成Java代码.服务器端用什么写的并不重要.
  3. wsimport.exe位于JAVA_HOME\bin目录下.
    常用参数为:-d<目录> - 将生成.class文件。默认参数。
    • -s<目录> - 将生成.java文件和class文件。
    • -p<生成的新包名> -将生成的类,放于指定的包下。
    • (wsdlurl) - http://server:port/service?wsdl,必须的参数。
    示例:
    D:/> wsimport –s . http://192.168.0.20/person?wsdl

六:soap协议版本1.1和1.2的理解

1) SOAP1.1请求消息体

POST /WebServices/MobileCodeWS.asmx HTTP/1.1
Host: webservice.webxml.com.cn
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://WebXml.com.cn/getMobileCodeInfo"

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <getMobileCodeInfo xmlns="http://WebXml.com.cn/">
      <mobileCode>string</mobileCode>
      <userID>string</userID>
    </getMobileCodeInfo>
  </soap:Body>
</soap:Envelope>

2) SOAP1.1相应消息体

HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <getMobileCodeInfoResponse xmlns="http://WebXml.com.cn/">
      <getMobileCodeInfoResult>string</getMobileCodeInfoResult>
    </getMobileCodeInfoResponse>
  </soap:Body>
</soap:Envelope>

而1.1和1.2的主要的区别:Content-Type的不同。

七:利用jdk发布webservice服务

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

说明: 在JDK1.6中JAX-WS规范定义了如何发布一个webService服务。
JAX-WS是指Java Api for XML – WebService.
与Web服务相关的类,都位于javax.xml.ws.*包中。
主要类有:
a) @WebService - 它是一个注解,用在类上指定将此类发布成一个webservice服务.
b) Endpoint – 此类为端点服务类,它的方法publish用于将一个已经添加了@WebService注解对象绑定到一个地址的端口上。Endpoint是jdk提供的一个专门用于发布服务的类,它的publish方法接收两个参数,一个是本地的服务地址,二是提供服务的类。它位于javax.xml.ws.*包中。
static Endpoint.publish(String address, Object implementor) 在给定地址处针对指定的实现者对象创建并发布端点。stop方法用于停止服务。
其他注意事项:
1) 给类添加上@WebService注解后,类中所有的非静态方法都将会对外公布。不支持静态方法,final方法。
2) 如果希望某个方法(非static,非final)不对外公开,可以在方法上添加@WebMethod(exclude=true),阻止对外公开。
3) 如果一个类上,被添加了@WebService注解,则必须此类至少有一个可以公开的方法,否则将会启动失败。
4) 服务类中不能没有方法
5) @WebMethod(exclude=true)屏蔽方法

helloService.java

package org.sihai.cxf;

import javax.jws.WebService;
import javax.xml.ws.BindingType;

@WebService
public class HelloService {

    public String sayHello(String name){
        return "hello" + name;
    }
}

发布类:
cxfTest.java

package org.sihai.cxf;

import org.apache.cxf.jaxws.JaxWsServerFactoryBean;



public class TestCxf {

    public static void main(String[] args) {

        JaxWsServerFactoryBean sf = new JaxWsServerFactoryBean();//设置服务工厂bean

        sf.setAddress("http://localhost:8888/hello");//设置服务地址
        sf.setServiceBean(new HelloService());//设置服务类
        sf.setServiceClass(HelloService.class);

        sf.create();
    }
}
<script type="text/javascript"> $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('<ul/>').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('<li/>').text(i)); }; $numbering.fadeIn(1700); }); }); </script>
分享到:
评论

相关推荐

    Axis webService 教程.pdf

    ### Axis WebService 教程知识点总结 #### 一、如何发布自己的WebService ##### 1.1 即时发布 JWS (Java Web Service) Files - Instant Deployment - **定义**: 即时发布是一种快速简便的方式,它允许直接通过将...

    java webservice教程

    这个教程“Java WebService教程”涵盖了使用Java技术开发Web服务的相关知识,包括API文档和示例,是学习Java WebService的理想资源。 首先,Web服务的核心概念是SOAP(Simple Object Access Protocol),它是一种...

    WebService教程,WebService完整示例,数据访问接口教程

    这是本人写的一个基于WebService的Java项目,采用Spring框架,实现了对远程数据的访问,教你怎样配置和访问WebService服务器,让你不再为写数据访问接口而烦恼。下载解压后直接导入MyEclipse中,启动Tomcat服务器,...

    webservice教程和开发指南

    1. 定义服务接口:使用Java注解(如@WebService)来声明服务接口,包括服务端点接口(SEI)和消息处理器接口。 2. 实现服务:为接口提供具体实现,处理客户端请求。 3. 创建WSDL:JAX-WS自动生成WSDL文件,描述服务...

    MyEclipse开发WebService教程

    在本教程中,我们将深入探讨如何使用MyEclipse这一强大的集成开发环境来开发Web Service。Web Service是一种基于标准的、跨平台的、可互操作的服务,它允许不同系统之间的数据交换。MyEclipse作为Java EE开发工具,...

    java webservice实例教程PPT

    java webservice实例教程ppt,共15讲,java webservice实例教程适合对象:想要学习SOA面向服务编程思想,学习Webservice技术,希望学习系统间通信设计的Java设计开发人员。java webservice实例教程适合于各个层次的...

    eclipse下开发webservice小教程

    使用eclipse开发简单的webservice使用eclipse开发简单的webservice

    最全WebService讲解教程

    WebService教程详解 在信息化高速发展的今天,WebService作为跨平台、跨语言的信息交换标准,成为了不同系统间通信的重要桥梁。本教程旨在提供一个详尽的WebService学习路径,帮助开发者全面掌握这一技术。 一、...

    WebService入门教程.pdf

    WebService入门教程简单入门教程 .

    webservice基本教程

    ### Webservice基本教程知识点概述 #### 一、Webservice简介 Webservice是一种跨语言、跨平台的应用程序间通信协议标准,它允许不同平台上的应用程序通过网络进行数据交换和功能调用。Webservice主要依赖于XML(可...

    webService入门教程

    ### WebService入门教程知识点详解 #### 一、WebService概述 1. **定义**: - WebService是一种跨编程语言和操作系统平台的远程调用技术,它允许程序通过HTTP协议访问远程服务器上的应用服务资源。 - WebService...

    eclipse开发webservice小教程

    自己写的eclipse开发webservice小教程

    axis+webservice教程+帮助文档

    axis+webservice教程+帮助文档

    WebService完整教程

    本教程将深入探讨WebService的核心概念、架构、工作原理以及如何在Java环境下实现和调用。 一、WebService概述 WebService是一种通过HTTP协议传输XML数据的服务,它基于W3C制定的SOAP(Simple Object Access ...

    CXF框架webservice教程

    CXF框架webservice教程,webservice客户端代码开发教程。图文并茂

    WebService开发实例图解教程

    1. **WebService基本概念** - WSDL (Web Services Description Language):定义了服务接口,描述了服务提供的操作、消息格式和通信协议。 - SOAP (Simple Object Access Protocol):用于传输数据,是基于XML的协议...

    webService入门教程 pdf 高清

    1. XML:WebService使用XML作为数据交换的格式,因此首先要了解XML的基本概念,包括标签、元素、属性等。 2. SOAP:这是一种基于XML的协议,用于在网络上交换结构化信息。它定义了一种消息处理框架,包括如何编码...

    webservice教程(xfire+spring)

    【Web服务基础与XFire简介】 Web服务是一种基于开放标准(如XML,SOAP,WSDL和UDDI)的通信协议,它允许不同系统之间的应用程序相互通信,从而实现跨平台的数据交换。Web服务的核心技术包括:简单对象访问协议...

Global site tag (gtag.js) - Google Analytics