一步一步开始WebSercie(详解HelloWorld程序)
来源:互联网 发布:贪吃飒淘宝小店网址 编辑:程序博客网 时间:2024/05/29 07:00
1.前言
这篇博客主要讲解第一个WebService例子,一步一步的来搭建第一个WebService实例,并且来分析一下有关WegbService的基础知识。
2.WebService
2.1 什么是WebService
百度解释
WebService是一个平台独立的,低耦合的,自包含的、基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言的下的一个子集)标准来描述、发布、发现、协调和配置这些应用程序,用于开发分布式的互操作的应用程序。
小编理解
根据字面上意思翻译为网络服务,可见就是一种服务。用来跨平台服务。举个例子来说,世界上有很多种语言,那么各种语言之间如何进行交流呢?我们可以借助第三方翻译工具,那么在这里这个工具就相当WebService;还比如,现在的天气预报,要使用这个功能的话,只需要调用服务即可。
2.2 基础知识
XML( Extensible Markup Language):扩展性标记语言
既然WebService作为一种服务来提供,那么如何来描述这种服务呢?就是通过XML来进行描述
WSDL(WebServiceDescription Language ):Web服务描述语言
就是通过XML形式来说明服务在什么地方,提供了什么样的方法,如何调用等信息
SOAP(SimpleObject Access Protocol):简单对象访问协议
用于网上的传输数据,我们所知道的有HTTP协议,其中HTTP协议是基于超文本的传输请求,即text\html,其中又划分为get和post请求,最大的区别也就是传递参数。而SOAP协议正是在HTTP基础上,通过XML来进行传输数据。其中SOAP的组成元素如下
Envelope – 必须的部分。以XML的根元素出现。
Headers– 可选的。
Body– 必须的。在body部分,包含要执行的服务器的方法。和发送到服务器的数据。
3.搭建HelloWorld程序
3.1 建立Java Project
创建一个普通的HelloWorld类,如下
<span style="font-family:Comic Sans MS;font-size:18px;">package com.tgb;import javax.jws.WebService;@WebServicepublic class HelloWorld {public void sayHello(){System.out.println("Hello---------");}public String outString(String name,String age){return name;}}</span>
其中@WebService是一个注解,用在类上指定将类发布成一个WebService服务
3.2 发布HelloWorld服务
创建一个testHelloService类,用来发布服务,如下
<span style="font-family:Comic Sans MS;font-size:18px;">package com.tgb;import javax.xml.ws.Endpoint;public class testHelloService {public static void main(String[] args) {//端点服务类,用来发布服务Endpoint.publish("http://192.168.24.202:8080/hello", new HelloWorld());}}</span>
其中Endpoint – 此类为端点服务类,它的方法publish用于将一个已经添加了@WebService注解对象绑定到一个地址的端口上。Endpoint是jdk提供的一个专门用于发布服务的类,它的publish方法接收两个参数,一个是本地的服务地址,二是提供服务的类。它位于javax.xml.ws.*包中。static Endpoint.publish(String address,Object implementor) 在给定地址处针对指定的实现者对象创建并发布端点。stop方法用于停止服务。
其他注意事项:
1) 给类添加上@WebService注解后,类中所有的非静态方法都将会对外公布。不支持静态方法,final方法。
2) 如果希望某个方法(非static,非final)不对外公开,可以在方法上添加@WebMethod(exclude=true),阻止对外公开。
3) 如果一个类上,被添加了@WebService注解,则必须此类至少有一个可以公开的方法,否则将会启动失败。
4) 服务类中不能没有方法
5) @WebMethod(exclude=true)屏蔽方法
3.3 运行程序
程序运行后,我们的服务就发布了,在浏览器中输入地址http://192.168.24.202:8080/hello?wsdl,来通过XML来查看服务的相关信息。
我们把上述的信息,划分了几种类型,如下所示
关于具体的方法参数的描述,我们可以在http://192.168.24.202:8080/hello?xsd=1中,看到方法的schema约束信息
3.4 wsimport生成客户端代码
如果我们要在客户端调用的话,就需要根据服务地址来生成相应的客户端代码,而wsimport是jdk自带的,可以根据wsdl文档来生成客户端代码,常用参数如下
-d<目录> - 将生成.class文件。默认参数。
• -s<目录> -将生成.java文件和class文件。
• -p<生成的新包名> -将生成的类,放于指定的包下。
• (wsdlurl) - http://server:port/service?wsdl,必须的参数。
上述中-s后面的.代表的是当前目录,-p后面的com.test代表的生成的目录结构,如果不指定的话,将会自动根据服务生成,最后面的是服务的地址
3.5 客户端调用
在上面的步骤中,生成客户端代码后,直接拷贝到我们的项目中,调用即可,此时我们创建一个testclient类,如下
<span style="font-family:Comic Sans MS;font-size:18px;">package com.tgb;import wsd.tgb.HelloWorldService;public class testclient { public static void main(String[] args) {//创建服务点集合HelloWorldService helloWorldService=new HelloWorldService();//生成服务后,调用服务方法即可helloWorldService.getHelloWorldPort().sayHello();}}</span>
以上就会调用我们发布的服务
- 一步一步开始WebSercie(详解HelloWorld程序)
- 从helloworld开始,理解程序
- Hibernate详解HelloWorld程序
- hadoop运行程序详解-helloworld
- OGRE启动过程详解(OGRE HelloWorld程序原理解析)
- OGRE启动过程详解(OGRE HelloWorld程序原理解析)
- OGRE启动过程详解(OGRE HelloWorld程序原理解析)
- OGRE启动过程详解(OGRE HelloWorld程序原理解析)
- OGRE启动过程详解(OGRE HelloWorld程序原理解析)
- 第一个duilib程序 - 实现HelloWorld详解
- 第一个duilib程序 - 实现HelloWorld详解
- (二)Shiro开发从HelloWorld开始
- 一步一步开始Web Service
- 一步一步开始Web Service
- 今天开始,一步一步慢慢来!!
- 脚踏实地,一步一步开始
- 一步一步开始FPGA逻辑设计
- helloworld程序
- Linux的运行级别和chkconfig用法
- CTime获取当前时间
- 软件开发协议组织图(转载)
- hdu1160 FatMouse's Speed 最长下降子序列 动态规划
- java修炼tutorial
- 一步一步开始WebSercie(详解HelloWorld程序)
- java学习笔记(一)用程序来做计算
- UIWebView加载POST请求 加载html
- 机器学习算法学习笔记
- Thread 和 Runable 区别
- 《Linux 环境C程序设计》阅读笔记
- ajax跨域访问
- 在Mac上配置adb命令
- 第二周 项目3 体验复杂度