webservice 搭建(一)

1.前言

前面介绍java通讯的几种方式,并比较了各自的优缺点,本文主要介绍web service。

1.概念

在介绍web service 之前先了解几个概念

1.1.远程调用和本地调用区别

webservice 搭建(一)_第1张图片

1.2.Web service

web service 是一个平台独立的,低耦合的,自包含的、基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言下的一个子集)标准来描述、发布、发现、协调和配置这些应用程序,用于开发分布式的互操作的应用程序.

1.3.wsdl

wsdl(Web Services Description Language):网络服务描述语言是Web Service的描述语言.

1.4.soap

soap(Simple Object Access Protocol):简单对象访问协议是交换数据的一种协议规范,是一种轻量的、简单的、基于XML(标准通用标记语言下的一个子集)的协议,它被设计成在WEB上交换结构化的和固化的信息。

2.webservice的三要素

SOAP、WSDL(WebServicesDescriptionLanguage)、UDDI(UniversalDescriptionDiscovery andIntegration)之一, soap用来描述传递信息的格式, WSDL 用来描述如何访问具体的接口, uddi用来管理,分发,查询webService 。SOAP 可以和现存的许多因特网协议和格式结合使用,包括超文本传输协议(HTTP),简单邮件传输协议(SMTP),多用途网际邮件扩充协议(MIME)。它还支持从消息系统到远程过程调用(RPC)等大量的应用程序。SOAP使用基于XML的数据结构和超文本传输协议(HTTP)的组合定义了一个标准的方法来使用Internet上各种不同操作环境中的分布式对象。
webservice 搭建(一)_第2张图片

下面主要讲解如何在idea中搭建webservice

3.webservice 服务端搭建

3.1.新建一个工程:File->new->project

webservice 搭建(一)_第3张图片

3.2.填写项目名称和路径

webservice 搭建(一)_第4张图片

3.3.右键HelloWorld.java 生成wsdl

webservice 搭建(一)_第5张图片

3.4.配置wsdl
webservice 搭建(一)_第6张图片

3.5.配置HelloWorld
webservice 搭建(一)_第7张图片
3.6.修复依赖

webservice 搭建(一)_第8张图片

3.7.tomcat配置启动服务
这里用本地的tomcat
webservice 搭建(一)_第9张图片
配置发布地址
webservice 搭建(一)_第10张图片

3.8.启动tomcat
webservice 搭建(一)_第11张图片

写测试类调用

package example;

import org.apache.axis.client.Service;
import org.apache.axis.client.Call;
import javax.xml.namespace.QName;
/**
 * 描述:
 * 作者:苏叶
 * 创建日期:2017-02-26 10:44.
 */

public class Test {
    public static void main(String[] argv) {

        Service service = new Service();
        String url = "http://localhost:8080/molly/services/HelloWorld?wsdl";

        try {
            Call call = (Call)service.createCall();
            call.setTargetEndpointAddress(new java.net.URL(url));
            call.setOperationName(new QName("http://example","sayHelloWorldFrom"));
            call.addParameter(new QName("from"),org.apache.axis.encoding.XMLType.XSD_STRING, javax.xml.rpc.ParameterMode.IN);
            call.setUseSOAPAction(true);
            call.setReturnType(org.apache.axis.encoding.XMLType.SOAP_STRING);
            String result = (String)call.invoke(new Object[]{"Tom"});

            System.out.println(result);

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

webservice也可以用地址访问格式:
这里写图片描述

4.备注
在搭建webservice服务端,是参照
http://blog.csdn.net/z69183787/article/details/53488875
,文章中介绍wsdl是手动生成,所以上面也介绍了如何手动创建。
一开始 我以为每创建一个java class都要手动去创建,经过测试 ,发现wsdl并不需要手动生成,下面是关于wsdl的详细介绍:

定义:wsdl即web服务描述语言,它是webservice的使用说明书,是xml格式的文档,它是随服务发布成功,自动生成的,无需编写
文档结构: 服务视图,webservice的服务结点,它包括了服务端点
为每个服务端点定义消息格式和协议细节 服务端点,描述 web
service可被执行的操作方法,以及相关的消息,通过binding指向portType
定义一个操作(方法)的数据参数(可有多个参数) 定义 web service 使用的全部数据类型 阅读方式:从下往上
Service找到binding Binding找到portType portType找到message message找到types

你可能感兴趣的:(Java)