`

Web Service

阅读更多

这篇博文,我们对Web Service进行一个简单的介绍和认识,作为Web Service的入门。在学习之前,你需要对HTML和XML有基本的了解,Web Service并不难,而且非常的简单。

什么是Web Service?

Web service是应用程序组件,可以被其他应用程序使用,不是框架,甚至不是一种技术, 而只是一种跨平台、跨语言的规范。

为什么要用Web Service?

几年前,Web Service并不流行。由于所有主要的平台均可通过Web浏览器访问web,不同的平台可以借助Web应用程序进行交互,平台之间协同工作。

Web 应用程序是运行在 Web 上的简易应用程序。它们围绕 Web 浏览器标准被进行构建,几乎可被任何平台之上的任何浏览器来使用。

Web services 把 Web 应用程序提升到了另外一个层面:

  1. Web Services平台需支持XML + HTTP,HTTP协议是最常用的因特网协议,XML提供了一种可用于不同平台和编程语言之间的语言。
  2. Web Services能够解决不同平台、不同语言编写的应用之间如何相互调用问题
  3. 使用 Web Services,我们的应用程序可以向全世界发布信息,或提供某项功能。

什么时候使用Web Service?

Web service 实际中的用途:

1、同一公司的新、旧系统的整合。

Linux平台上的java调用window上的c#语言。

2、不同公司的业务整合

业务的整合就要带来,不同公司的系统整合。不同公司的系统可能存在平台不同、语言不同的问题。

3、内容聚合

一个应用,例如:需要提供、天气预报,股票行情、黄金行情等等。
需要调用大量不同的平台,不同语言编写的应用的方法。

重要术语

WSDL含有两个最重要的术语:

  1. SOAP 是一种简单的基于 XML 的协议,它使应用程序通过 HTTP 来交换信息。
    或者更简单地说:SOAP 是用于访问网络服务的协议。

  2. WSDL(网络服务描述语言,Web Services Description Language)是一门基于 XML 的语言,用于描述 Web Services 以及如何对它们进行访问。

这两个术语,我会在后面的博文中为大家重点介绍。

总结

恭喜你,你距离向全世界发布功能或消息还有一步。

下面我们介绍一个开源的Services框架,并实现一个HelloWorld实例。

 

我们介绍了Web Service的基本概念,了解它的基本概念之后,我们这篇博文介绍一个开源的WebService框架-Apache CXF,并实现一个HelloWorld实例。

一、开始之前

SOA目前已经成为了人人皆知的热点,SOA是面向服务的架构,SOA的重点在于服务的重用,即Service1+Service2+Service3,所有的组件都是“即插即用”的。SOA是由IBM提倡的架构,希望以“组装电脑”的方式开发软件。SOA涉及到两个重要的技术:

  1. 各种提供服务的组件(web service)
  2. 企业服务总线(Enterprise Service Bus ——> ESB )(后面的博文介绍)

二、CXF介绍

CXF号称是SOA框架,也是Apache旗下的开源框架,由Celtix + XFire这两门经典的框架合成,是一套非常流行的web service框架。提供了对 JAX-WS 全面的支持,并且提供了多种 Binding 、DataBinding、Transport 以及各种 Format 的支持,并且可以根据实际项目的需要,采用代码优先(Code First)或者 WSDL 优先(WSDL First)来轻松地实现 Web Services 的发布和使用。对于CXF的功能特性,以及支持标准,传输方式,不再过多的介绍,大家看一下网上的内容即可。

CXF下载地址:

下载地址

安装CXF+配置:

  1. 下载CXF,将压缩包解压
  2. 找到bin目录,例如:D:\apache-cxf-2.5.9\bin,将这个目录配置到电脑的环境变量的path下。
  3. 验证是否成功。
    在命令界面dos下,输入wsdl2java,例如:
    这里写图片描述

可以看到有相应的信息输出,就是我们的命令缺少参数而已,表明可以执行这个命令,已经成功。

三、开发Web Service

1、开发准备

  1. jdk安装
  2. eclipse开发环境
  3. CXF安装+配置

2、服务器端

万事俱备只欠东风,我们先开发服务器端。

1、目录:
这里写图片描述

每个WebService组建需要2个部分:接口和实现类。

2、服务器端的代码:

接口:HelloWorld

package com.tgb.ws;

import javax.jws.WebService;

@WebService
public interface HelloWorld {
    String sayHi(String name);
}

实现类:

package com.tgb.ws.impl;

import java.util.Date;
import javax.jws.WebService;
import com.tgb.ws.HelloWorld;

@WebService(endpointInterface="com.tgb.ws.HelloWorld",
serviceName="HelloWorldWs")
public class HelloWorldWs implements HelloWorld {

    @Override
    public String sayHi(String name) {
        return name + ".您好" + "现在时间是:" 
        + new Date();
    }
}

接口和实现我们都写好了,下面我们暴露我们的服务:

package service;

import javax.xml.ws.Endpoint;

import com.tgb.ws.HelloWorld;
import com.tgb.ws.impl.HelloWorldWs;

public class ServerMain {

    public static void main(String[] args) {

        HelloWorld hw = new HelloWorldWs();

        //调用EndPoint的publish方法发布WebService
        //调用Endpoint的publish方法发布web service 第一个参数为ip地址 ,第二v参数就是服务的提供者  
        Endpoint.publish("http://192.168.3.3:8989/crazyit", hw);

        System.out.println("WebService调用成功了");
    }
}

运行main方法,我们就可以发现我们暴露的服务了:
这里写图片描述

由上图我们已经成功的暴露服务,我们使用了WebService的注解,但是好像我们到现在还没有使用CXF, 为什么呢?

因为WebService是java的规范,CXF是WebService的实现。

3、服务器端小结

开发服务器端的步骤,总共分为三步:
(1)开发一个Web Service业务接口。
该接口要用@WebService修饰
(2)开发一个Web Service实现类
实现类也需要用@WebService修改
(3)使用EndPoint类的静态方法来发布WebService

3、客户端

1、目录
这里写图片描述

2、使用CXF生成客户端代码
首先,新建java项目,在命令行窗口中,切换到此java项目src目录。使用CXF的命令,wsdl2java+服务暴露地址?wsdl
这里写图片描述

[注]生成客户端代码时,服务器端一定要运行,否则会保持,如下图:
这里写图片描述

3、客户端代码:

package client;

import com.tgb.ws.HelloWorld;
import com.tgb.ws.impl.HelloWorldWs;

public class ClientMain {

    public static void main(String[] args) {
        HelloWorldWs hw = new HelloWorldWs();
        HelloWorld helloWorld = hw.getHelloWorldWsPort();
        System.out.println(helloWorld.sayHi("HelloWorld"));

    }
}

运行客户端,如下图:
这里写图片描述

好的,恭喜你,我们已经成功的调用了我们的服务。

4、客户端小结:

使用CXF开发Web Service客户端得步骤也分三步:
(1)调用CXF提供的wsdl2java工具
WSDL-Web Service Definition Language任何语言实现了Web Service,都需要提供、并暴露WSDL文档。
(2)找到wsdl2java所生成类中,一个继承了Service的类。
该类的实例可当成工厂使用。
(3)调用Service子类的实例的getxxxPort方法,返回webService的代理。

总结:

恭喜你,使用CXF开发Web Service的简单实例到此结束。

 

分享到:
评论

相关推荐

    C#Web Service C#Web Service C#Web Service

    C# Web Service是一种基于.NET Framework的开发技术,用于创建分布式应用程序,使得不同系统间能够通过互联网进行通信。这种服务提供了一种标准化的方式,允许应用程序通过HTTP协议交换数据,因此,即使它们是由不同...

    《实战Delphi6/Kylix2/SOAP/Web Service程序设计篇》(

    在《实战Delphi6/Kylix2/SOAP/Web Service程序设计篇》这本书中,作者李维精心编撰了一套系统而全面的教程,针对的是Delphi6和Kylix2这两个经典的Visual Basic derivative (VBD) 编程环境,尤其是针对SOAP(Simple ...

    asp.net写的web service例子

    ASP.NET Web Service是一种基于.NET Framework的简单方法,用于构建可跨平台、跨语言通信的Web应用程序。这个例子是为初学者设计的,旨在演示如何创建和使用Web Service,以及如何在ASP.NET环境中调用这些服务。 ...

    web service 精典入门教程

    "Web Service 精典入门教程" 本篇教程旨在为读者提供一个完整的 Web Service 入门指南,涵盖了 Web Service 的基本概念、架构、SOAP 协议、WSDL 文件、_WS-Security 等重要知识点。 Web Service 基本概念 Web ...

    T100 Web Service 接口开发v1.5版.rar

    《T100 Web Service 接口开发v1.5版》 在现代信息技术领域,Web Service接口开发扮演着至关重要的角色,它使得不同系统之间的数据交换和功能调用变得简单而高效。本文将深入探讨T100 Web Service接口开发的最新版本...

    D6 SOAP_WEB SERVICE

    标题"D6 SOAP_WEB SERVICE"指的是使用Delphi编程语言开发基于SOAP(简单对象访问协议)的Web服务。在本文中,我们将深入探讨这个主题,了解如何使用Delphi构建Web服务以及SOAP在其中的作用。 首先,让我们了解一下...

    service now web service

    ### Service Now Web Service知识点 #### 一、简介与概述 **Service Now Web Service**是一种集成解决方案,它允许不同应用程序之间通过网络进行通信。Service Now 支持多种类型的 Web 服务,包括作为提供者...

    web service第一次启动慢

    web service在第一次启动时出现启动缓慢的问题,通常是指在运行或访问web service时遇到的启动延迟现象。这种问题可能会在不同的web service应用中出现,尤其是在首次连接或部署新服务时更为常见。web service是一种...

    Java完整的Web Service示例代码,学会做web service程序

    本示例代码将帮助你理解和实现一个完整的Web Service程序。 首先,我们来看"xfire-client"部分。XFire是早先的一个Java Web Service框架,它简化了客户端和服务端的开发。在Java中,创建Web Service客户端通常涉及...

    Web service应用实例

    ### Web Service应用实例详解 #### 一、IIS安装与配置 在开发Web Service之前,首先需要确保服务器上已正确安装并配置了Internet Information Services (IIS)。无论是Windows Server 2003还是Windows XP,IIS都是...

    实战Delphi6.Kylix2.SOAP.Web Service程序设计篇李维著.zip

    《实战Delphi6.Kylix2.SOAP.Web Service程序设计篇》是由知名技术专家李维编著的一本专业书籍,主要面向的是希望深入理解和应用Delphi6、Kylix2、SOAP以及Web Service技术的开发者。这本书详细介绍了如何利用这些...

    Web Service Proxy Wizard的介绍,安装,以及如何使用

    Web Service Proxy Wizard 是一个工具,它为Visual Studio 6.0的开发者提供了一种方法,可以将Web服务封装成一个代理组件(.dll),这个组件可以在设计时通过早期绑定(Early Binding)像其他COM组件一样使用。...

    Web Service编程:用C#开发网络服务

    Web Service编程是现代软件开发中的一个重要领域,尤其是在分布式系统和跨平台通信中。C#作为.NET框架的主要编程语言,提供了强大的工具和库来创建和消费Web Service。本篇将深入探讨C#环境下开发Web Service的相关...

    JavaScript Web Service Calls

    JavaScript Web Service调用是Web开发中的一个重要概念,它允许客户端的JavaScript代码与服务器端的服务进行交互,从而实现数据的获取和发送。这种交互通常基于HTTP协议,可以是RESTful API或者传统的SOAP服务。在本...

    PB11开发Web Service应用

    本篇内容将深入探讨如何利用PB11来开发Web Service应用,这对于初学者来说是一份宝贵的资源。 一、Web Service基础 Web Service是一种基于开放标准的、平台无关的通信协议,它允许不同系统之间的数据交换。在PB11中...

    vmware vSphere web service SDK开发指南

    VMware vSphere Web Service SDK开发指南是一份指导开发者如何使用VMware vSphere SDK进行开发的文档。VMware vSphere是VMware公司推出的业界领先虚拟化解决方案,它通过提供高级抽象层来管理和控制计算资源,为用户...

    yahoo web service-2.11.zip

    **Yahoo Web Service 2.11** Yahoo Web Service 2.11 是一个重要的API接口,它允许开发者利用Yahoo的在线资源和服务进行程序开发。这个版本可能是对之前版本的升级,可能包含了性能优化、新功能的添加以及已知问题...

Global site tag (gtag.js) - Google Analytics