博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Web Service随笔
阅读量:5982 次
发布时间:2019-06-20

本文共 2339 字,大约阅读时间需要 7 分钟。

什么是Web Service?

  WebService是一个SOA(面向服务的编程)的架构,它是不依赖于语言,不依赖于平台,可以实现不同的语言间的相互调用,通过Internet进行基于Http协议的网络应用间的交互。

Web Service有什么用处?

  Web Service可以使两个不同语言和平台编写的程序实现交互,可以发布一些服务共他人使用,也可以调用他人发布的一些服务。

Web Service需要了解的知识:

  soap:一种通信协议通过http发送xml格式的数据。

  wsdl:用来描述Web Service的,也就是Web Service的说明书

  uddl:信息注册中心的实现标准规范,同时也包含一组使企业能将自身提供的Web Service注册,以使别的企业能够发现的访问协议的实现标准。

如何发布一个自己的服务(Web Service)

  Web Service发布和调用都有好几种方法,这里只说明其中的一种

代码如下:

1 package com.web.service; 2  3 import javax.jws.WebService; 4 import javax.xml.ws.Endpoint; 5  6 @WebService 7 public class PublishService { 8     //@webService用注解的方式来将此类定义为一个web服务注意要jdk1.6及以上版本才可以使用 9     public static void main(String[] args) {10         //用Endpoint将此类发布为一个服务端点11         Endpoint.publish("http://localhost:6789/hi", new PublishService());12         System.out.println("ready...");13     }14     15     public String sayHi(String name){16         return "Hello,"+name;17     }18     //用static或final修饰的方法不会再wsdl中显示19     public static String sayHi1(String name){20         return "Hello,"+name;21     }22     public final String sayHi2(String name){23         return "Hello,"+name;24     }25 }

运行成功后打开浏览器访问服务端点:http://localhost:6789/hi?wsdl会显示如下界面说明发布成功:

This XML file does not appear to have any style information associated with it. The document tree is shown below.

发布成功后,就可以根据服务端点来调用我们的服务

如何调用Web Service:

  通过DOS命令选择盘符方便找到文件,通过DOS命令:wsimport -s . http://localhost:6789/hi?wsdl

  生成客户端类源文件文件如下图所示:

               

生成成功找到此文件

新建一个新的项目将此文件copy进来

                   

新建一个测试类

参考 http://localhost:6789/hi?wsdl 中

通过服务名创建对象并调用服务端口调用如下:

1 package com.web.test; 2  3 import com.web.service.PublishService; 4 import com.web.service.PublishServiceService; 5  6 public class ServiceTest { 7     public static void main(String[] args) { 8         //创建服务对象并获取端口 9         PublishService port = new PublishServiceService().getPublishServicePort();10         //调用端口中的sayHi()方法11         String hi = port.sayHi("xiaoming");12         System.out.println(hi);13     }14 }

 

这样就实现了在不同的程序中调用Web Service服务

注意:当发布者的服务器关闭的时候调用服务会报错

自己的总结,如有错误之处,还望各位大牛不吝赐教,谢谢。

 

转载于:https://www.cnblogs.com/hcl22/p/6189399.html

你可能感兴趣的文章
wampserver 运行橙色,80端口没有被占用,查看错误日志方法
查看>>
Adwords Campaign network & placement
查看>>
java查询图片显示无图片显示项目默认图片
查看>>
page1201未完成
查看>>
oracle数据库命令-持续更新
查看>>
0106递归下降语意分析
查看>>
自动脚本工具新版 v2.0
查看>>
AngularJS理论基础
查看>>
WSTMart开源商城
查看>>
红黑树的性质
查看>>
Diablo 大菠萝
查看>>
AC 自动机
查看>>
float,double和decimal类型
查看>>
使用MapReduce实现一些经典的案例
查看>>
5 . 4 . 3 架构
查看>>
类静态和实例化执行顺序优先级(静态构造函数、静态变量、静态方法)
查看>>
【翻译】jQuery是有害的
查看>>
ajax提交param 后台接受是对象
查看>>
ajax基础一
查看>>
数据结构实验之链表四:有序链表的归并-sdut
查看>>