`

webservice的实现

阅读更多

 

webservice的实现

WebService更多是一种标准,而不是一种具体的技术。不同的平台,不同的语言大都提供WebService的开发实现。在Java领域,WebService的一个成熟实现是Axis

q AxisApache的一个开源WebService引擎,它是目前最为成熟的开源WebService引擎之一。

q Apache Axis是符合W3CSOAP协议的实现。

q 该项目是属于Apache SOAP协议的子项目。

1.1 Axis的下载

登陆http://www.apache.org/dyn/closer.cgi/ws/axis/1_4站点,Axis的最新版本是1.4,本文中示例程序都是基于该版本完成。下载到axis-bin-1_4.zip文件,解压缩该文件,发现如下的文件结构:

q docs:存放Axis的说明文档。

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

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

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

q xmls:存放相关配置文档。

q 还有LICENSE等相关说明文档。

1.2 Axis的安装

安装Axis,首先必须保证系统已经正确安装了Web服务器,笔者使用Tomcat6.0.24webapps下的axis路径全部复制到Tomcatwebapps路径下。然后打开浏览器,输入:http://localhost:8080/axis/

如果出现如图1所示界面表示Axis的基本类库已经安装成功,地址中的8080是我的Tomcat的端口。单击如图1所示页面的左上方“Validation”链接,出现如图2所示界面:



  图1 Axis安装成功界面 

 



    图2 Axis校验界面(已安装组件

 

 

如若页面显示Axis的必需组件缺少一个没有安装,两个可选组件也没有安装,单击上面的提示链接,分别登陆:

q http://java.sun.com/products/javabeans/glasgow/jaf.html

q http://java.sun.com/products/javamail/

q http://xml.apache.org/security/

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

q jaf-1_1-fr.zip

q javamail-1_4.zip

q 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下。再次校验Axis,看到页面提示全部安装成功。

1.3 开发自己的WebService

完成了前面的部署后,就可以开始开发自己的WebService了。首先编写需要提供服务的类,该类不需要实现任何接口,也不需要继承任何父类,只需要是POJO即可。Axis支持将普通方法暴露成WebService。看如下的服务类:

//服务类,应该声明为public

public class Hello

{         //服务方法

    public String sayHello(String name)

    {

        return "hello ," + name + ",Welcome to Axis";

    }

}

该类简单得难以置信,但正是个简单的类,它可以提供WebService。将该类的文件名存为Hello.jws

注意:不是java后缀,而是jws后缀。

将该文件放入axis应用的根路径下,也就是与WEB-INF同一级路径,然后重启动Tomcat,或者在Tomcat控制台重新加载axis应用。然后,打开浏览器输入如下地址:

http://localhost:8080/axis/Hello.jws

看到如图所示界面:


    图3  Hello WebService

 



 图4 WebService的WSDL描述

这表示该WebService发布成功,单击“Click to see the WSDL”链接,可查看该WebServiceWSDL描述。成功发布的WebSerivice通过网络访问,因为SOAP协议基于HTTP协议,因此WebService可以在互联网上访问。访问该WebService的客户端代码如下:

import org.apache.axis.client.Call;

import org.apache.axis.client.Service;

public class WebServiceClient {

// 程序的入口

public static void main(String args[])

{

System.out.println("开始调用WebService");

try

{

// WebService所在的url

String endpoint = "http://localhost:8080/axis/Hello.jws";

 

// 创建Serivce对象,Service对用用于创建Call对象

Service service = new Service();

 

// 创建Call对象,Call对象用于调用服务

Call call = (Call) service.createCall();

 

// 为Call对象设置WebService的url

call.setTargetEndpointAddress(new java.net.URL(endpoint));

 

// 为Call对象设置调用的方法名

call.setOperationName("sayHello");

 

// 调用WebService的方法,并获得返回值

String s = (String) call.invoke(new Object[] { "hsaingyu" });

 

// 输出返回值

System.out.println(s);

}

catch (Exception e)

{

System.out.println(e.toString());

}

System.out.println("调用WebService正常结束");

}

}

运行结果:


   借助于Axis可以将POJO发布成WebService,远程客户端不需要任何接口或类,因为远程客户端直接调用方法,直接使用Call对象调用方法。

 

  • 描述: Axis安装成功界面
  • 大小: 97.7 KB
  • 描述: Axis校验界面
  • 大小: 107.4 KB
  • 描述: Hello WebService
  • 大小: 70.1 KB
  • 描述: WebService的WSDL描述
  • 大小: 152.7 KB
  • 大小: 100.8 KB
分享到:
评论

相关推荐

    用WebService实现对数据库进行操作(添加+删除+修改)

    ### 使用WebService实现对数据库进行操作(添加、删除、修改) #### 概述 在现代软件开发过程中,Web服务(WebService)被广泛应用于不同系统之间的数据交互和服务调用。通过WebService,客户端可以远程调用服务器...

    WebService实现支付功能(ASP.NET)

    ASP.NET--WebService实现支付功能

    WebService实现步骤(包括WEBSERVICE的demon)

    WebService 实现步骤(包括 WEBSERVICE 的 DEMO) WebService 是一种基于网络的软件系统,使用标准的 Web protocols 进行通信,能够提供跨语言、跨平台的软件应用程序之间的交互,使得不同的应用程序能够相互调用和...

    C#调用WebService实现天气预报

    本示例中,我们将探讨如何利用C#调用WebService来获取天气预报信息。这个过程涉及到网络通信、XML数据解析以及对第三方API的集成。 首先,我们需要理解WebService的工作原理。WebService是一种基于HTTP协议的远程...

    webservice 实现 两个数相加

    【标题】"Web服务(WebService)实现:两个数相加" 在IT领域,Web服务是一种通过互联网进行应用程序间通信的技术。这里的"Web服务实现:两个数相加"是指利用Web服务技术来创建一个简单的功能,即接收两个数字并返回...

    WebService实现天气预报

    【WebService实现天气预报】 在IT领域,WebService是一种基于标准的、平台无关的、可以在互联网上进行通信的技术。它允许不同的应用程序之间交换数据和服务,从而打破了系统间的壁垒,实现了跨平台的信息共享。本...

    jdk 6.0 自带webservice实现 实例

    "JDK 6.0 自带 Webservice 实现实例" JDK 6.0 自带 Webservice 实现实例是使用 JDK 自带的功能来实现 Webservice 的一个示例。这个示例展示了如何使用 JDK 6.0 中自带的轻量级 Webservice 服务器来发布一个简单的 ...

    C#中js调用WebService实现无刷新

    在IT领域,尤其是在Web开发中,"C#中js调用WebService实现无刷新"是一个重要的技术主题,它涉及到客户端和服务器端的交互以及用户界面的更新优化。无刷新技术允许用户在不重新加载整个网页的情况下更新部分页面内容...

    delphi调用Webservice实现增删改查功能的源代码示例

    在实际应用中,使用Delphi调用Webservice实现数据库操作需要注意以下几点: 1. 错误处理:确保在调用Webservice方法后,检查返回值或异常情况,以便处理可能出现的错误。 2. 安全性:考虑到数据敏感性,需确保通信...

    WebService实现一个增删查改的接口服务(亲测可用)

    在我们的WebService实现中,请求和响应将通过SOAP消息进行交换。 3. **C3P0连接池** C3P0是一个开源的JDBC连接池,它可以提高数据库访问性能,同时管理数据库连接的生命周期。在我们的示例中,C3P0将帮助我们有效...

    WebService的几种不同实现方式

    在Java中,主要存在三种WebService实现规范: 1. JAX-WS(Java API for XML-Web Services):JAX-WS是目前常用的Java Web服务实现,它基于SOAP协议。JDK1.6中自带的是JAX-WS2.1版本,底层支持使用JAXB。JAX-WS替代...

    C#调用WebService实现的Ajax电子相册

    《C#调用WebService实现的Ajax电子相册详解》 在现代Web开发中,提供动态、交互性极强的用户体验是关键。本文将深入探讨如何使用C#、WebService以及Ajax技术构建一个模仿QQ空间相册效果的电子相册。这个项目以XML...

    CSharp调用WebService实现手机号码归属地查询

    总的来说,C#调用WebService实现手机号码归属地查询涉及到了网络编程、数据解析、用户界面设计等多个方面。掌握这些技术,可以帮助开发者构建功能丰富的应用程序,满足各种业务需求。在实际项目中,还可以根据具体...

    基于webservice实现的一个CXF例子

    **基于Webservice实现的一个CXF例子** Web服务(Web Service)是一种通过互联网交换业务逻辑的软件系统,它允许应用程序在不同的平台之间共享数据和服务。Java世界中的Webservice实现有很多,如JAX-WS(Java API ...

    WebService实现用户注册与登录

    在本案例中,"WebService实现用户注册与登录"指的是构建一个可以通过网络调用的服务,用于处理用户的注册和登录请求。 在Web服务的实现中,通常会涉及以下关键技术点: 1. **SOAP (Simple Object Access Protocol)...

    asp.net2.0项目之利用webService实现的新闻系统(VS2005+SQL2000)

    利用webService实现的新闻系统 实现了新闻的添加、编辑、删除以及用户管理功能,功能上比较简单,但是都是通过调用webService来实现的,而且采用了MVC面向对象模式进行开发,用户登录采用了自定义控件 安装注意: ...

    JAVA用WebService实现调用天气预报功能

    本项目名为"JAVA用WebService实现调用天气预报功能",其核心是利用Java技术对接中央气象台的Web服务接口,获取并显示实时天气信息。 首先,理解Java中的WebService调用原理至关重要。SOAP是用于在Web上交换结构化和...

    C#实现的通过webservice 获取服务器端 程序实现 系统自动升级

    利用C#和WebService实现服务器端程序的自动升级,可以让开发者更专注于核心业务逻辑,而无需担忧版本管理和用户手动升级的问题。通过设计良好的WebService接口和客户端调用逻辑,可以实现平滑、可靠的升级过程,提高...

    C#与WebService实现网络计算器,可多项式计算.zip

    总的来说,"C#与WebService实现网络计算器,可多项式计算.zip"项目展示了如何利用C#和ASP.NET技术开发一个支持复杂计算的Web服务,并通过IIS部署使其能够在网络上运行。这个项目对于学习C#编程、Web服务开发以及前端...

    C#创建WebService实现基于数据库的公交路线查询

    根据提供的文档摘要,本文主要介绍了如何使用 C# 和 WebService 技术结合数据库来实现城市公共交通线路查询功能。本文档不仅提供了技术实现细节,还详细解释了公交线路数据库设计及查询逻辑,最后给出了具体的 ...

Global site tag (gtag.js) - Google Analytics