webservice 入门学习

来源:互联网 发布:linux零基础 编辑:程序博客网 时间:2024/06/05 15:46

1、什么是webservice?

webservice基于web的服务,使用HTTP方式,接收和响应外部系统的某种请求从而实现程序与程序之间的调用。
1、从工作模式上理解:它跟普通的web程序(如:asp,jsp等)并没有本质的区别,都是基于HTTP传输协议的程序。
2、使用的数据均是基于XML格式的。主要采用SOAP协议。SOAP协议实际上就是一种基于xml编码的文本协议。

2、如何发布一个webservice

1、用Jdk1.6.0_21以后的版本发布一个WebService服务.并通过地址栏查看它的wsdl文档. 2、通过wsimport生成客户端代码,调用并查看运行的结果.(学会如何调用是我们的重点).需要注意的是,jdk1.6._07以后jdk版本发布WebService时必须要完整的对代码进行注解,如果使用的是jdk1.6.0_21以后版本,因为它已经内含了ws2.1所以,可以只对类添加@WebService的注解. 例如:在jdk1.6.0_13 上发布webservice:需要注解@webservice,@SOAPBinding,@webmethod在jdk1.6.0_24 上发布,只需要注释@webservice

3、Wsimport命令生成客户端java代码

wsimport是jdk自带的,可以根据wsdl文档生成客户端调用代码的工具.当然,无论服务器端的WebService是用什么语言写的,都将在客户端生成Java代码.服务器端用什么写的并不重要.
wsimport.exe位于JAVA_HOME\bin目录下.
 常用参数为:
• -d<目录> - 将生成.class文件。默认参数。
• -s<目录> - 将生成.java文件。
• -p<生成的新包名> -将生成的类,放于指定的包下。

例如 wsimport -s F:\working\GiveMeWords\src -p com.lc.service -keep http://localhost:9001/Service/Function?wsdl

4、WebService与普通Web程序的区别

1、 WebService只采用HTTP POST方式传输数据,不使用GET方式;
1) Http post的contentType为 application/x-www-form-urlencoded
2) WebService的contentType为 Text/xml soap1.1 application/soap+xml –soap1.2
2、WebService从数据传输格式上作了限定。WebService所使用的数据均是基于XML格式的。目前标准的WebService在数据格式上主要采用SOAP协议。SOAP协议实际上就是一种基于XML编码规范的文本协议。

5、WebService和web服务器的区别:

我们可以把WebService看作是Web服务器上应用;反过来说,Web服务器是WebService运行时所必需的容器。这就是它们的区别和联系。

6、WebService的特点:

1、 WebService通过HTTP POST方式接受客户的请求
2、 WebService与客户端之间一般使用SOAP协议传输XML数据.
3、它本身就是为了跨平台或跨语言而设计的。
步骤:
1、编写我的第一个webservice程序:

package com.lc.function;import javax.jws.WebService;import javax.xml.ws.Endpoint;@WebServicepublic class FirstWebService {    public String theFirstWebMethod(){        return "hello ,this is the first webservice";    }    public static void main(String args[]){        //发布第一个webservice 地址        Endpoint.publish("http://localhost:9001/webService/firstWebService", new FirstWebService());        System.out.println("publish successfully...");    }}

2、运行FirstWebService 的main方法,将其发布,控制台出现publish successfully…即为发布成功

3、使用cmd命令中的wsimport 命令生成客户端代码

这里写图片描述

4、编写客户端代码

public class Test {    /**     * @description :     * @date 2016-12-19     * @author liucong     * @param args     *      *      */    public static void main(String[] args) {        // TODO Auto-generated method stub        FirstWebService first = new FirstWebServiceService().getFirstWebServicePort();        System.out.println(first.theFirstWebMethod());    }}
0 0
原创粉丝点击