zoukankan      html  css  js  c++  java
  • WebService学习之旅(七)Axis2发布WebService的几种方式

    前面几篇文章中简单的介绍了如何使用Axis2发布WebService及如何使用Axis2实现Web服务的客户端调用,本节將详细介绍Axis2发布WebService的几种方式。

    一、使用aar包方式发布
    这种方式也是Axis2官方比较推荐的一种方式,Axis2 提供的Eclipse插件就是以这种方式发布WebService。
    这种方式前面我们已经接触过了,这里还是简单的介绍一下步骤:

    1.新建一个eclipse工程,编写Web服务接口及实现类,例如:
    HelloWorld.java

    package com.csdn.ws.axis2.recipe01;
    
    public interface HelloWorld {
        public String sayHello(String name);
    }
    

    HelloWorldImpl.java

    package com.csdn.ws.axis2.recipe01;
    
    public class HelloWorldImpl implements HelloWorld {
    
        @Override
        public String sayHello(String name) {
            return "hello," + name;
        }
    
    }
    

    2.新建META-INF目录,在该目录下新建services.xml,用于描述WebService配置:

    <?xml version="1.0" encoding="UTF-8"?>
    <service name="HelloWorld">
        <description>
            HelloWorld Service Example
        </description>
        <parameter name="ServiceClass">
            com.csdn.ws.axis2.recipe01.HelloWorldImpl
        </parameter>
        <parameter name="useOriginalwsdl">
            false
        </parameter>
        <operation name="sayHello">
            <messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
        </operation>
    </service>

    3.將工程导出jar包,后缀名为*.aar,放到%TOMCAT_HOME%/webapps/axis2/WEB-INF/services目录下。

    4.重启tomcat,浏览器访问http://localhost:8080/axis2/services/listServices,可以看到多了一个名为HelloWorld的WebService。
    这里写图片描述

    二、基于POJO方式发布WebService
    这种方式相对来讲比较简单,需要以下几步
    1.新建一个工程,在src目录下新建一个类,例如类名为PojoService(注意不能有包名)

    public class PojoService {
        public String sayHello(String name) {
            return "Hello," + name;
        }
    }
    

    2.进入bin目录下,將编译过后的PojoService.class文件拷贝到%TOMCAT_HOME%/webapps/axis2/WEB-INF/pojo目录下,如果没有该目录,新建一个。

    3.重启tomcat,浏览器访问http://localhost:8080/axis2/services/listServices,可以看到名为PojoService的服务。
    这里写图片描述

    使用这种方式发布的WebService名称和Pojo类名相同。

    三、基于JAX-WS方式发布WebService
    使用JAX-WS发布WebService大家已经不陌生了,Axis2同样支持以JAX-WS方法发布WebService,接下来看步骤

    1.新建一个Java Project,编写Web服务接口和Web服务实现类,使用JDK自带的JAX-WS 注解API修饰它们,例如:
    JAXWS.java

    package com.csdn.ws.axis2.recipe03;
    
    import javax.jws.WebMethod;
    import javax.jws.WebService;
    
    @WebService
    public interface JAXWS {
        @WebMethod
        public String sayHello(String name);
    }

    JAXWSImpl.java

    package com.csdn.ws.axis2.recipe03;
    
    import javax.jws.WebService;
    
    @WebService(endpointInterface="com.csdn.ws.axis2.recipe03.JAXWS",serviceName="JaxWS")
    public class JAXWSImpl implements JAXWS{
    
        @Override
        public String sayHello(String name) {
            return "Hello," + name;
        }
    
    }

    2.右键工程,导出jar包,后缀名为*.jar,然后將导出的jar包复制到%TOMCAT_HOME%/webapps/axis2/WEB-INF/servicejars目录,如果没有servicejars目录,新建一个。

    3.將JDK lib目录下的tools.jar包拷贝到tomcat的lib目录下,这一步很重要,否则会报错。

    4.重启tomcat,打开浏览器访问http://localhost:8080/axis2/services/listServices,可以看到名为JaxWS的WebService。
    这里写图片描述

    注:使用Axis2发布WebService的方式比较多,但最常用的就是第一种,后面两种了解即可,下节开始介绍Axis2 Eclipse插件的使用。

  • 相关阅读:
    zookeeper编译环境搭建
    windows下zookeeper安装并发布成windows服务
    ScheduledThreadPoolExecutor源码
    AbstractExecutorService源码
    FutureTask源码2
    FutureTask源码
    ThreadPoolExecutor源码2
    ThreadPoolExecutor源码1
    二进制转10进制
    Android ANR Waiting because no window has focus问题分析
  • 原文地址:https://www.cnblogs.com/lanzhi/p/6468250.html
Copyright © 2011-2022 走看看