WebService学习之旅(七)Axis2发布WebService的几种方式

时间:2021-08-05 00:04:35

前面几篇文章中简单的介绍了如何使用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。

WebService学习之旅(七)Axis2发布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学习之旅(七)Axis2发布WebService的几种方式

使用这种方式发布的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。

WebService学习之旅(七)Axis2发布WebService的几种方式

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

WebService学习之旅(七)Axis2发布WebService的几种方式的更多相关文章

  1. WebService学习之旅(三)JAX-WS与Spring整合发布WebService

    Spring本身就提供了对JAX-WS的支持,有兴趣的读者可以研究下Spring的Spring-WS项目,项目地址: http://docs.spring.io/spring-ws/sites/1.5 ...

  2. WebService学习之旅(六)使用Apache Axis2实现WebService客户端调用

    上节介绍了如何使用Axis2 发布一个WebService,Axis2除了为我们编写WebService应用带来了便利,也同样简化的客户端调用的过程,本节在上节的基础上使用Axis2自带的工具生成客户 ...

  3. 使用JDK和axis2发布webservice

    最近使用webservice进行远程调用一直很火,自从JDK1.6版本发布后,发布一个webservice项目变得更加简单了 笔者由于工作的需要针对JDK和axis2如何发布webservice做过相 ...

  4. &lbrack;翻译&rsqb; C&num; 8&period;0 新特性 Redis基本使用及百亿数据量中的使用技巧分享(附视频地址及观看指南) 【由浅至深】redis 实现发布订阅的几种方式 &period;NET Core开发者的福音之玩转Redis的又一傻瓜式神器推荐

    [翻译] C# 8.0 新特性 2018-11-13 17:04 by Rwing, 1179 阅读, 24 评论, 收藏, 编辑 原文: Building C# 8.0[译注:原文主标题如此,但内容 ...

  5. TOMCAT下面发布项目的4种方式

    摘要 TOMCAT下面发布项目的4种方式,可用于在平时资料查询. 第一种方法: 将web项目文件件拷贝到webapps 目录中:或者直接通过Eclipse发布到Tomcat上. 第二种方法: 在tom ...

  6. WebService学习之旅(五)基于Apache Axis2发布第一个WebService

    上篇博文介绍了如何將axis2 webservice引擎安装到Web容器中,本节开始介绍如何基于apache axis2发布第一个简单的WebService. 一.WebService服务端发布步骤 ...

  7. WebService学习之旅(四)Apache Axis2的安装

    一.Axis2简介 Axis2是目前使用较多的WebService引擎,它是Axis1.x的升级版本,不仅支持SOAP1.1和SOAP1.2,而且也提供了对REST风格WebService的支持. A ...

  8. WebService学习之旅(二)JAX-WS基于Web容器发布WebService

    在上节中我们定义Web服务接口和实现类后,调用Endpoint类的静态方法publish发布来webservice,这种方法使用起来虽然简单,但是对于一个企业级应用来说通常对外提供的服务可能不止一个, ...

  9. Java借助axis2发布WebService

    Webservice: 1.Xml: 2.WSDL: Web service描述语言(WSDL)就是这样一个基于XML(标准通用标记语言下的一个子集)的语言,用于描述Web service及其函数.参 ...

随机推荐

  1. &period;container&lowbar;fluid 与 &period;container 的区别

    .container 会在左右两侧留白边,而且是自动的,不用设置. .container{ padding-right:15px; padding-left:15px; margin-right:au ...

  2. Java:Object类

    objcet类中涉及的多态的扩展性,由于Object是所有类的根类,所以它可以接收任意类型的数据,包括基本数据类型.因为这一特点,它可以对多态性进行扩展. 1.创建一个Demo类来判断类类型 clas ...

  3. URAL 1097 Square Country 2 离散化

    一共才100个正方形,将所有正方形左下角和右上角的X坐标和Y坐标离散化,直接枚举新建公园的点的坐标即可. O(n^3)的时间复杂度. #include <cstdio> #include ...

  4. Android在一个APP中通过包名或类名启动另一个APP

    开发有时需要在一个应用中启动另一个应用,比如Launcher加载所有的已安装的程序的列表,当点击图标时可以启动另一个应用.一般我们知道了另一个应用的包名和MainActivity的名字之后便可以直接通 ...

  5. 莫烦theano学习自修第六天【回归】

    1. 代码实现 from __future__ import print_function import theano import theano.tensor as T import numpy a ...

  6. 展示博客---Alpha版本展示

    Alpha版本展示 1. 团队成员的简介和个人博客地址,团队的源码仓库地址. 成员 简介 个人博客地址 祁泽文 被动态统计图搞扒下的我 http://www.cnblogs.com/jiaowoxia ...

  7. 推荐11个实用Python库

    1.delorea 非常酷的日期/时间库 from delorean import Delorean EST = "US/Eastern"d = Delorean(timezone ...

  8. ffmpeg&lowbar;资料&lowbar;01

    1. 用ffmpeg制作推流工具,实现推流系统声音和桌面到rtmp服务器-CSDN论坛-CSDN.NET-中国最大的IT技术社区.html http://bbs.csdn.net/topics/392 ...

  9. 【BZOJ2565】最长双回文串 Manacher

    [BZOJ2565]最长双回文串 Description 顺序和逆序读起来完全一样的串叫做回文串.比如acbca是回文串,而abc不是(abc的顺序为“abc”,逆序为“cba”,不相同).输入长度为 ...

  10. Qt 学习之路 2(66):访问网络(2)

    Home / Qt 学习之路 2 / Qt 学习之路 2(66):访问网络(2) Qt 学习之路 2(66):访问网络(2)  豆子  2013年10月31日  Qt 学习之路 2  27条评论 上一 ...