使用Axis2搭建WebService服务

文章目录

  • 一、服务端部署
    • 1.1 在web.xml配置文件中添加映射路径:
    • 2. 创建目录及文件
    • 3. 新建服务接口
    • 4. 新建接口实现类
    • 5. 发布服务
    • 6. 浏览器测试
  • 二、客户端部署
    • 2.1 Axis2客户端通用工具类封装(企业版本)
    • 2.2 单元测试(命名空间默认):
    • 2.3 单元测试:命名空间根据需求,名称为gblfy
  • 三、jar包依赖获取
    • 3.1 登录axis2官网下载即可
    • 3.2 war包部署tomcat
    • 本文源码下载:

一、服务端部署

1.1 在web.xml配置文件中添加映射路径:

<servlet>  <servlet-name>AxisServlet</servlet-name>  <servlet-class>org.apache.axis2.transport.http.AxisServlet</servlet-class>  <load-on-startup>1</load-on-startup>  </servlet>  <servlet-mapping>  <servlet-name>AxisServlet</servlet-name>  <url-pattern>/services/*</url-pattern>  </servlet-mapping>

2. 创建目录及文件

  • 在WEB-INF下面新建services文件夹,在services文件夹下面新建conf文件夹,在conf文件夹下面新建META-INF文件夹,在META-INF文件夹下面新建services.xml文件:

    文件内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<!-- 1. name : 指定接口服务名,随便定义 2. targetNamespace::命名空间 自定义(默认包路径反着)3. description :服务的作用说明,可写可不写 -->
<service name="ExposureServiceName" targetNamespace="gblfy"><description>测试spring-axis2</description><!-- 1. 自定义 name 2. 指定要发布的类路径 --><parameter name="ServiceClass">com.gblfy.axis2.service.impl.WebServiceImpl</parameter><!-- 1. name : 类里面的方法名 2. 指定要发布的类路径 3. 有其他方法就在写个operation标签--><operation name="forward"><messageReceiverclass="org.apache.axis2.rpc.receivers.RPCMessageReceiver" /></operation><operation name="hello"><messageReceiverclass="org.apache.axis2.rpc.receivers.RPCMessageReceiver" /></operation><schema schemaNamespace="gblfy"/>
</service>

3. 新建服务接口

4. 新建接口实现类

package com.gblfy.axis2.service.impl;import com.gblfy.axis2.service.IWebService;public class WebServiceImpl implements IWebService{public String hello(String name) {return "你好:" + name;}@Overridepublic String forward(String strXml) {return "测试TestService:" + strXml;}
}

5. 发布服务

6. 浏览器测试

http://localhost:8081/spring-axis2/services/ExposureServiceName?wsdl
效果图:

手动设置命名空间截图(没有需求,保持默认即可,如果有这样的需求,按照我照样是设置即可):

注:为了满足需求,命名空间,我手动设置过

二、客户端部署

2.1 Axis2客户端通用工具类封装(企业版本)

 /*** * @param url       服务调用地址* @param nameSpace 命名空间* @param method    方法名* @param tReqXml   请求报文* @return response 响应报文*/public String webserviceAxis2Client(String url, String nameSpace, String method, String tReqXml) {Object[] response = null;try {// 本机tomcat端口默认为8081,参数是wsdl网址的一部分EndpointReference targetEPR = new EndpointReference(url);RPCServiceClient sender = new RPCServiceClient();Options options = sender.getOptions();options.setTimeOutInMilliSeconds(2 * 20000L);// 超时时间20soptions.setTo(targetEPR);QName qname = new QName(nameSpace, method);Object[] param = new Object[] { tReqXml };Class<?>[] types = new Class[] { String.class }; // 这是针对返值类型的response = sender.invokeBlocking(qname, param, types);System.out.println(response[0]);} catch (AxisFault e) {e.printStackTrace();}return (String) response[0];}

2.2 单元测试(命名空间默认):

命名空间默认:

2.3 单元测试:命名空间根据需求,名称为gblfy


第一种:

 public static void main(String[] args) {String url = "http://localhost:8081/spring-axis2/services/ExposureServiceName?wsdl";String nameSpace = "http://impl.service.axis2.gblfy.com";
//      String method = "forward";String method = "hello";String tReqXml = "Axis2客户端调用成功";WebserviceClientUtils a = new WebserviceClientUtils();a.webserviceAxis2Client(url, nameSpace, method, tReqXml);}

第二种:

public static void main(String[] args) {String url = "http://localhost:8081/spring-axis2/services/ExposureServiceName?wsdl";String nameSpace = "gblfy";
//      String method = "forward";String method = "hello";String tReqXml = "Axis2客户端调用成功";WebserviceClientUtils a = new WebserviceClientUtils();a.webserviceAxis2Client(url, nameSpace, method, tReqXml);}

任选其一即可
控制台输出:

三、jar包依赖获取

3.1 登录axis2官网下载即可

http://axis.apache.org/axis2/java/core/download.cgi




3.2 war包部署tomcat

  • 将war包放到tomcat的webapp目录下面,启动tomcat就可以看到Axis2的首页。
    项目所用到的jar从第1个压缩包中取,简单直接从lib文件夹里面的jar全部复制到项目中即可

本文源码下载:

链接 https://pan.baidu.com/s/1Ww6qrAopbIiQReIeojd4tg
提取码 hjlx

Axis2搭建WebService服务相关推荐

  1. SpringBoot+Axis2搭建WebService服务端

    SpringBoot+Axis2搭建WebService服务端 之前用过Spring + Axis2搭建过WebService项目,网上也有很多资料教程,最近需要在一个SpringBoot项目中添加A ...

  2. Spring boot集成axis2开发webservice 服务

    Spring boot集成axis2开发webservice 服务 1.新建Spring boot 项目 此处省略... 项目结构如下: 2.添加Axis2依赖 <!--axis2版本信息--& ...

  3. Axis2调用WebService服务的3种方式(rpc调用不好用)

    第一,RPC方式,不生成客户端代码,引入相应的axis2的jar包(不好用) 注意:暂时没有成功调用,没有参数传递时远程调用成功,当有参数传递时远程调用失败: package com.ming.axi ...

  4. gsoap搭建WebService服务

    WebService.soap.gsoap基本概念 WebService服务基本概念:就是一个应用程序,它向外界暴露出一个可以通过web进行调用的API,是分布式的服务组件.本质上就是要以标准的形式实 ...

  5. java的cxf的maven_Maven+Spirng+Mybatis+CXF搭建WebService服务

    修改pom.xml配置文件 增加以下配置 3.1.1 org.apache.cxf cxf-rt-frontend-jaxws ${cxf.version} org.apache.cxf cxf-rt ...

  6. 使用Axis2创建一个简单的WebService服务

    使用过Java进行过WebService开发都会听过或者接触过Apache Axis2,Axis2框架是应用最广泛的WebService框架之一了. 这里使用Axis2来开发和部署一个最简单的WebS ...

  7. 在Eclipse中通过axis2调用网络免费webService服务

    上上一篇blog讲到了如何用axis2建立webService(sayHello),然后调用的方法. http://www.cnblogs.com/Jason_Chan/archive/2013/04 ...

  8. 使用axis2进行WebService的开发

    使用axis2进行WebService的开发 Apache Axis2 是 Apache Axis SOAP 项目的后继项目.此项目是 Web 服务核心引擎的重要改进,目标是成为 Web 服务和面向服 ...

  9. php webservice 上传,PHP实现WebService服务

    第一步,安装PHP扩展SOAP并开启扩展,是否开启成功以phpinfo为准. 第二步,创建服务端文件server.php {public functionhello(){return "He ...

最新文章

  1. c# webBrowser打开pdf问题
  2. 关于ANDRID sdk安装过慢问题
  3. C++ Primer 5th笔记(2)chapter 2变量和基本类型:引用、const
  4. 《数智碳中和》白皮书发布以数智技术助力关键相关方实现碳达峰碳中和
  5. prometheus监控耗时MySQL_Grafana+Prometheus监控mysql性能
  6. 《炉石传说》的退环境机制失败在哪
  7. oracle 账户 锁定 密码忘记了,Oracle System密码忘记 密码修改、删除账号锁定lock
  8. 算法只能应用于计算机吗,把你的原则转换成算法,让计算机和你一起决策
  9. 156.PHP多进程
  10. 自定义View - 仿即刻轮播
  11. db4o_8.0对象数据库官方文档翻译_学习笔记一
  12. 【Java】 牛客网华为机试108题汇总
  13. ubuntu12.04双屏拼接
  14. 10^5以下素数筛法——素数表法
  15. word ftl操作
  16. 李宏毅机器学习01机器学习介绍
  17. BP神经网络——基于近红外光谱的汽油辛烷值预测
  18. 计算机usb无法识别网络连接,usb无法识别是什么原因 usb无法识别解决方法【详解】...
  19. 智能机器人与智能系统(大连理工大学庄严教授)——3.工业机器人
  20. MySQL必知必会二十三:使用存储过程

热门文章

  1. 天下为公:TCP堵塞控制
  2. 华为荣耀电脑第三方linux,【第三方Linux版】荣耀MagicBook Pro 16.1英寸全面屏如何?某东入手评测...
  3. redis stream学习总结
  4. Linux常用压缩和解压命令
  5. 慢sql治理经典案例分享
  6. 陈旸:清华博士的模型信仰
  7. Dubbo-gok8s注册中心设计方案与实现
  8. 深度 | API 设计最佳实践的思考
  9. 懂编译真的可以为所欲为|不同前端框架下的代码转换
  10. 二十分钟教你如何将区块链应用与函数计算相结合 1