微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

webService的原理和实例Demo

由于项目对接的问题,这周都在和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:大神如果发现表达错误,还望多多指正!!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐