webService的原理和实例Demo

本文介绍了Web Service的基本概念、应用场景,详细阐述了SOAP、WSDL和UDDI三大元素,并通过创建服务端和客户端的实例Demo,展示了Web Service的工作流程。在服务端,创建了一个名为WSServiceDemo的Dynamic Web Project,生成了服务接口的WSDL文件。在客户端,通过Eclipse反向工程根据服务端的WSDL文件生成了调用接口的类,运行后实现了服务调用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

由于项目对接的问题,这周都在和webService打交道,写篇文章总结一下这周的任务吧!!

一、webService的应用场景

1、可重复使用的应用程序组件

对于一些重复性比较高的功能,没必要各自开发,可以大家都用最棒的一个版本。比如说天气预报,没必要为了获取天气而研究卫星、发射卫星、获取数据。。。这种功能完全可以大家都用同一个。

2、连接现有的软件

现有两套系统,他们各自实现了自己的功能,但是需要互通数据。

二、webService是什么

了解了应用场景,那么webService就很好理解了:WebService是一种跨编程语言和跨操作系统平台的远程调用技术。他是基于HTTP协议,应用XML作为传输介质的平台。

三、webService平台的元素

  • soap(简易对象访问协议)用于应用程序见得通讯,是一种基于XML用于消息发送的格式
  • wsdl(web service描述语言)基于 XML 的用于描述 Web Services 以及如何访问 Web Services 的语言
  • uddi(通用表述、发现及整合)是一种目录服务,通过它,企业可注册并搜索 Web services。

四、webService接口形式

服务端提供webService接口的wsdl文件,客户端通过服务端提供的地址,根据wsdl文件里的定义,调用接口。这样说起来好像比较模糊,下面我给出一个自己demo。

五、webService实例Demo

1、创建服务端

创建一个项目,我选的是dynamic web project,命名为WSServiceDemo。

在src下建一个package,命名为demo。并在包内建一个类,命名为serviceDemo,类里的方法叫service。

package demo;

public class serviceDemo {
	public String service(String name){
		return"Hello,"+name;
	}
}

接着我们需要通过Eclipse来帮我们创建一个wsdl文件。右键刚才写好的serviceDemo类,new一个web service,一路next就好了

在浏览器内打开地址http://localhost:8080/WSServiceDemo/services,这时候应该会看见下图,说明已经构建成功了。

项目结构中,可以发现,webContent下多了一个wsdl文件夹,下面还有一个serviceDemo.wsdl。

这时候在浏览器点开serviceDemo,就可以看家serviceDemo.wsdl文件了。

2、创建客户端

创建一个项目,我选的还是dynamic web project,命名为WSClientDemo。在src下建一个package,命名为demo。

右键新建的package,new一个web service client,在Browse里选择刚才服务端里的serviceDemo.wsdl文件,一路next。

再看项目结构,发现在demo文件夹下多了一些类。

接下来写一个客户端测试类。在demo下新建一个类,命名为clientDemo。

package demo;

import java.net.MalformedURLException;
import java.rmi.RemoteException;
import javax.xml.rpc.ServiceException;
import org.apache.axis.client.Service;
import org.apache.axis.client.Call;

public class clientDemo {
	
	public static void main(String[] args) throws ServiceException, MalformedURLException, RemoteException {
		//这个地址就是浏览器内的请求地址
		String endpoint ="http://localhost:8080/WSServiceDemo/services/serviceDemo?wsdl";
		Service service = new Service();
		Call call = (Call) service.createCall();
		call.setTargetEndpointAddress(new java.net.URL (endpoint));
		//服务端调用方法名
		call.setOperationName("service");
		String res=(String)call.invoke(new Object[]{"client"});
		System.out.print(res);
		
	}
}

3、运行启动

先启动服务端,确定可以访问http://localhost:8080/WSServiceDemo/services/serviceDemo?wsdl。然后右键运行客户端的clientDemo类。

这时候可以看见控制台输出service say:Hello,client

这样整个webService的demo就完成了。

4、补充

如果是别人直接提供了wsdl文件,可以先将wsdl文件放到项目内,然后运用Eclipse直接反向生成服务端,步奏和创建服务端类似,区别是在选择web service type的时候应该选“top down java bean web service”,然后在browse选项目内别人提供的wsdl文件。

完成以后也会生成6个文件,其中有一个impl文件是实现类,可以在里面写功能。不过我的做法是在里面写获取客户端请求信息并输出,方便调试查看数据。


ps:大神如果发现表达错误,还望多多指正!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值