网络服务 WebService

以下均为个人理解,如有歧义,欢迎指教   '(0.0)'

1.什么是webService?

   它是一种服务,为了实现某种功能 ,服务可以分为本地服务和网络服务,本地服务:就是我再自己电脑上就可以完成的事情。

   网络服务器:就是我要用电脑做某件事,但是我的本机电脑不支持,我必须连接网络,在网络上做这件事,这种服务就叫网络服     务,webService就是一种网络服务,比如:我想查看天气预报,查看地图路线路......这些都是网络服务。

2.webService的有点:

    webService是基于soap 协议,数据格式为:xml。使用webService发布的服务一般都是:通用公共性,与核心业务无关的。

    1.与平台无关,可以跨平台。

    2.与编程语言无关,可以是java,php。。。只要遵守相关协议就好

    3.开发者部署,升级,维护简单

    4.调用者,调用方式简单,可以实现多数数据,多种服务聚合

3.wsld文件(Web Services Description Languag)

  网络服务描述语言,我理解就是描述的发布的服务的一些相关信息,是用xml格式编写的,

  第一眼看一脸懵逼,乱七八糟,什么玩应?

  此文件需要要从下往上看,里面主要包含,服务地址,服务包含的方法,每个方法的请求参数,响应结果等相关信息

  如下图:(详细的自行百度吧,我开发时知道这些就足够了)

4.如何调用webService?

   调用方式应该有很多种,我只用过两种:

  1. 第1种是通过wsdl2java跟服务给的wsld文件生成本地客户端进行调用
  2. 第二种是通过 axis 方法调用。(下面参考代码就是用这种方式)

引入依赖:

<properties>
        <axis2.version>1.7.8</axis2.version>
    </properties>
    <!--axis2 begin-->
        <dependency>
            <groupId>org.apache.axis2</groupId>
            <artifactId>axis2-spring</artifactId>
            <version>${axis2.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.axis2</groupId>
            <artifactId>axis2-transport-http</artifactId>
            <version>${axis2.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.axis2</groupId>
            <artifactId>axis2-transport-local</artifactId>
            <version>${axis2.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.axis2</groupId>
            <artifactId>axis2-xmlbeans</artifactId>
            <version>${axis2.version}</version>
        </dependency>

  

代码如下:

   public String getCoreJsonService(String url,String requestMethod,String parameter) {
		String result = "";
		try {
        	org.apache.axis.client.Service service = new org.apache.axis.client.Service();
            Call call = (Call)service.createCall();
            call.setTargetEndpointAddress(new URL(url));
            call.setOperationName(requestMethod); // 需要请求的方法
            call.addParameter("parameter", XMLType.SOAP_STRING, ParameterMode.IN);  // 入参
            call.setReturnType(XMLType.SOAP_STRING);  // 设置返回值
            result = (String) call.invoke(new Object[] {parameter});
            log.info("请求结果:{}", result);
        }catch (Exception e){
            e.printStackTrace();
        }
		return result;
	}
发布了38 篇原创文章 · 获赞 1 · 访问量 1052

猜你喜欢

转载自blog.csdn.net/yu13843271857/article/details/100919609