1.新建一个项目,结构如下

2.引入项目所需jar包

axis相关jar文件说明请查阅该博文

3.配置web.xml,注册axis2信息

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app version="2.5"
  3. xmlns="http://java.sun.com/xml/ns/javaee"
  4. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  5. xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
  6. http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  7.  
  8. <display-name>Spring+axis2</display-name>
  9. <!-- 整合spring -->
  10. <listener>
  11. <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  12. </listener>
  13. <context-param>
  14. <param-name>contextConfigLocation</param-name>
  15. <param-value>/WEB-INF/config/appContext*.xml</param-value>
  16. </context-param>
  17. <!-- 注册axis2的servlet -->
  18. <servlet>
  19. <servlet-name>AxisServlet</servlet-name>
  20. <servlet-class>
  21. org.apache.axis2.transport.http.AxisServlet
  22. </servlet-class>
  23. <load-on-startup>1</load-on-startup>
  24. </servlet>
  25. <servlet-mapping>
  26. <servlet-name>AxisServlet</servlet-name>
  27. <url-pattern>/services/*</url-pattern>
  28. </servlet-mapping>
  29.  
  30. <welcome-file-list>
  31. <welcome-file>index.jsp</welcome-file>
  32. </welcome-file-list>
  33. </web-app>

3.创建服务接口

  1. package com.chinawu.service;
  2. /**
  3. *
  4. * @ClassName: IWebService
  5. * @Description: WebService接口类
  6. * @author 吴宇斌
  7. * @date 2014-8-7 下午09:40:19
  8. * @version 1.0
  9. */
  10. public interface IWebService {
  11. public String welcome();
  12. public String getParamName(String str);
  13. }

4.创建服务接口实现类

  1. package com.chinawu.service;
  2. /**
  3. *
  4. * @ClassName: WeService
  5. * @Description: WebService实现类
  6. * @author 吴宇斌
  7. * @date 2014-8-7 下午09:41:36
  8. * @version 1.0
  9. */
  10. public class WebService implements IWebService{
  11.  
  12. public String getParamName(String str) {
  13. return "传入参数:"+str;
  14. }
  15.  
  16. public String welcome() {
  17. return "welcome chinaWu!";
  18. }
  19.  
  20. }

5.创建spring配置文件

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
  3. "http://www.springframework.org/dtd/spring-beans.dtd">
  4. <beans>
  5. <bean id="webService" class="com.chinawu.service.WebService"></bean>
  6. </beans>

6.创建axis配置文件

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <service name="WebService">
  3. <description>Spring+axis2</description>
  4. <parameter name="ServiceClass">
  5. com.chinawu.service.WebService
  6. </parameter>
  7. <parameter name="SpringBeanName">webService</parameter>
  8. <messageReceivers>
  9. <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only"
  10. class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver" />
  11. <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out"
  12. class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
  13. </messageReceivers>
  14. </service>

7.服务访问

http://localhost/spring2axis/services/WebService?wsdl

8.客户端接口调用

  1. package com.chinawu.client;
  2.  
  3. import javax.xml.namespace.QName;
  4.  
  5. import org.apache.axis2.AxisFault;
  6. import org.apache.axis2.addressing.EndpointReference;
  7. import org.apache.axis2.client.Options;
  8. import org.apache.axis2.rpc.client.RPCServiceClient;
  9.  
  10. public class Client {
  11. public static void main(String[] args1) throws AxisFault {
  12.  
  13. EndpointReference targetEPR = new EndpointReference("http://localhost/spring2axis/services/WebService");
  14. RPCServiceClient serviceClient = new RPCServiceClient();
  15. Options options = serviceClient.getOptions();
  16. options.setTo(targetEPR);
  17.  
  18. QName opAddDevice = new QName("http://service.chinawu.com", "welcome");
  19. Object[] opGetArgs = new Object[] {};
  20. Class[] returnTypes = new Class[] { String.class };
  21. Object[] response = serviceClient.invokeBlocking(opAddDevice,opGetArgs, returnTypes);
  22. String result = (String)response[0];
  23. System.out.println("WebService-welcome-reutnInfo:"+result);
  24.  
  25. opAddDevice = new QName("http://service.chinawu.com", "getParamName");
  26. opGetArgs = new Object[] {"你好!"};
  27. returnTypes = new Class[] { String.class };
  28. response = serviceClient.invokeBlocking(opAddDevice,opGetArgs, returnTypes);
  29. result = (String)response[0];
  30. System.out.println("WebService-getParamName-reutnInfo:"+result);
  31. }
  32. }

输出结果信息

9.查看服务列表

http://localhost/spring2axis/services/listServices

至此spring成功集成axis,项目源码下载地址: http://pan.baidu.com/s/1gd8BwYn

Spring集成axis2的更多相关文章

  1. axis2+spring集成

    转载自:http://www.cnblogs.com/linjiqin/archive/2011/07/05/2098316.html 1.新建一个web project项目,最终工程目录如下: 注意 ...

  2. spring集成环境下的axis webservice的发布,调试

    在spring集成的环境下,无论你是ssh集成,还是ssi集成的情况下,发布webservice往往在调用的时候会出错. 特别是,如果你是这个方式: 将webservice打aar包,放到tomcat ...

  3. 从零开始学 Java - Spring 集成 Memcached 缓存配置(二)

    Memcached 客户端选择 上一篇文章 从零开始学 Java - Spring 集成 Memcached 缓存配置(一)中我们讲到这篇要谈客户端的选择,在 Java 中一般常用的有三个: Memc ...

  4. 从零开始学 Java - Spring 集成 ActiveMQ 配置(一)

    你家小区下面有没有快递柜 近两年来,我们收取快递的方式好像变了,变得我们其实并不需要见到快递小哥也能拿到自己的快递了.对,我说的就是类似快递柜.菜鸟驿站这类的代收点的出现,把我们原来快递小哥必须拿着快 ...

  5. 【转】Dubbo使用例子并且和Spring集成使用

    一.编写客户端和服务器端共用接口类1.登录接口类public interface LoginService {    public User login(String name, String psw ...

  6. 从零开始学 Java - Spring 集成 Memcached 缓存配置(一)

    硬盘和内存的作用是什么 硬盘的作用毫无疑问我们大家都清楚,不就是用来存储数据文件的么?如照片.视频.各种文档或等等,肯定也有你喜欢的某位岛国老师的动作片,这个时候无论我们电脑是否关机重启它们永远在那里 ...

  7. rabbitMQ第五篇:Spring集成RabbitMQ

    前面几篇讲解了如何使用rabbitMq,这一篇主要讲解spring集成rabbitmq. 首先引入配置文件org.springframework.amqp,如下 <dependency> ...

  8. 从零开始学 Java - Spring 集成 ActiveMQ 配置(二)

    从上一篇开始说起 上一篇从零开始学 Java - Spring 集成 ActiveMQ 配置(一)文章中讲了我关于消息队列的思考过程,现在这一篇会讲到 ActivMQ 与 Spring 框架的整合配置 ...

  9. spring集成常用技术的配置

    使用spring集成其他技术,最基本的配置都是模板化的,比如配置视图模板引擎.数据库连接池.orm框架.缓存服务.邮件服务.rpc调用等,以spring的xml配置为例,我将这些配置过程整理出来,并不 ...

随机推荐

  1. python反转链表和成对反转

    https://www.cnblogs.com/tianqizhi/p/9673894.html https://blog.csdn.net/weixin_34168700/article/detai ...

  2. PHP导出excel文件的多种方式

    1.第一种实现的方法 set_time_limit(0); //逐条导出数据 ob_end_clean(); header("Content-type: application/vnd.ms ...

  3. POJ 2728 二分+最小生成树

    题意:给n个点,可以将每个点的x,y的欧几里得距离(就是坐标系里两点距离公式)看作距离,z的差值即为费用差,求的是所有最小生成树中的min(边费用和/边距离和). 思路:其实挑战P143有类似的列题, ...

  4. 两步解决maven plugins 插件下载慢 !下载报红的问题!

    两步解决maven plugins 插件下载慢 !下载报红的问题! 1.找到你解压的maven安装路径下的conf   编辑settings 2.添加如下   使用阿里的 <mirror> ...

  5. Matplotlib绘图库入门(七):高效使用

    原文地址: !()[http://www.bugingcode.com/blog/Matplotlib_7_Effectively_Using.html] 这是一篇关于如何高效的使用Matplotli ...

  6. 彪悍的Surface Book2发布:能重拾笔记本行业的信心吗?

    ​ Book2发布:能重拾笔记本行业的信心吗?" title="彪悍的Surface Book2发布:能重拾笔记本行业的信心吗?"> ​  在智能手机全面普及之后, ...

  7. C++扬帆远航——15(项目二,太乐了)

    /* * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:tailezhanshi.cpp * 作者:常轩 * 微信公众号 ...

  8. ip修改成域名

    将ip修改成域名,这样的话可以使程序变得更加健壮,别人不能直接看见你的ip地址. 后来总结下分享给大家.首先找到hosts文件的位置,这个文件是系统dns默认查找的文件. windows 系统:C:\ ...

  9. 达拉草201771010105《面向对象程序设计(java)》第十五周学习总结

    达拉草201771010105<面向对象程序设计(java)>第十四周学习总结 第一部分:理论知识 JAR文件: 1.Java程序的打包:程序编译完成后,程序员 将.class文件压缩打包 ...

  10. Think 框架漏洞利用

    下午有点闲,又没有女朋友陪,该干嘛呢??? 对了,做安全的是不需要女朋友的,哈哈哈哈哈 废话不多说,本机搭建环境: 首先nmap扫描一下,哦哈,有点东西. 开的端口有点多,这个时候有点窃喜,开的端口太 ...