1、先下载axis jar包:axis-bin-1_4.zip。下载地址: http://ws.Apache.org/axis/。

当然这个包其实是不全面的,像activation.jar之类的,完全的Lib会在附件里提供。

2、解压好后,将webapps目录下的axis拷贝到tomcat_home的webapps下面。

3、在myeclipse中新建一个web项目,取名叫testWebservice.并新建一个包名叫webservice.axis.wsdd,

再新建一个class名叫:HelloWorldWSDD。

HelloWorldWSDD源代码如下:

  1. package webservice.axis.wsdd;
  2. public class CopyOfHelloWorldWSDD {
  3. private int requestCount=0;
  4. public String hello(String cardNo){
  5. requestCount++;
  6. System.out.println("requestCount="+requestCount);
  7. System.out.println("Received:"+cardNo);
  8. return "Hello"+cardNo;
  9. }
  10. public float add(float a,float b){
  11. requestCount++;
  12. String result="a="+a+",b"+b;
  13. System.out.println("requestCount"+requestCount);
  14. System.out.println("Received:"+result);
  15. return a+b;
  16. }
  17. }

4、将tomcat_home\webapps\axis\WEB-INF\lib下面所有的jar包拷贝到项目中的Lib中。

5、先部署一下web项目,再运行tomcat,运行http://localhost:8080/axis调试下是否安装成功。然后将tomcat_home\webapps\axis\WEB-INF\lib所有的jar包同时拷贝到tomcat_home\lib下面。此时我们的webservice还不会出现在调试列表里,因为还有很多配置工作没有做。

6、下面将tomcat_home\webapps\testWebservice\WEB-INF\classes\下的webservice文件夹复制到tomcat_home\webapps\axis\WEB-INF\classes下面。这步的目的就是以后客户端访问axis时能看见我们的websevice.

7、在tomcat_home\webapps\axis\WEB-INF下面文件deploy.wsdd,在里面输入:

  1. <deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
  2. <service name="HelloWorldWSDD" provider="java:RPC">
  3. <parameter name="className" value="webservice.axis.wsdd.HelloWorldWSDD" />
  4. <parameter name="allowedMethods" value="*" />
  5. <parameter name="scope" value="request" />
  6. </service>
  7. </deployment>

8、运行CMD,进入目录到tomcat_home\webapps\axis\WEB-INF\,输入如下命令:

  1. java -Djava.ext.dirs=lib org.apache.axis.client.AdminClient  deploy.wsdd

注意:运行此步时要保证tomcat是运行着的,否则会出现connection refuesed的错误。如果运行成功,会提示done processing.而且会生成一个文件server-config.wsdd。

9、此时已经快完成了。可以在浏览器里输入http://localhost:8080/axis/services。看看有没有新增加一个叫HelloWorldWSDD的webservice.如果有,那么就是成功啦。

其他简单测试方法:

  1. 1、在浏览器输入http://localhost:8080/axis/services/HelloWorldWSDD
  2. 2、在浏览器输入http://localhost:8080/axis/servlet/AxisServlet
  3. 2者都可以用来简单测试webservice是否处于可用状态。

10、编写客户端进行测试。在同样的包下建一个class叫Client

客户端的核心就是引用url。

源代码如下:

  1. package webservice.axis.wsdd;
  2. import javax.xml.namespace.QName;
  3. import org.apache.axis.client.Call;
  4. import org.apache.axis.client.Service;
  5. public class CopyOfClient {
  6. public static void main(String args[]){
  7. try{
  8. String serviceurl="http://localhost:8080/axis/services/HelloWorldWSDD";
  9. Service service=new Service();
  10. Call call=(Call)service.createCall();
  11. call.setTargetEndpointAddress(serviceurl);
  12. call.setOperationName(new QName(serviceurl,"hello"));
  13. String result=(String)call.invoke(new Object[]{"123456"});
  14. call.setOperationName(new QName(serviceurl,"add"));
  15. Float returnValue=(Float)call.invoke(new Object[]{new Float(3.2),new Float(2.8)});
  16. System.out.println("float return value is:"+returnValue);
  17. if(result!=null){
  18. System.out.println("result="+result);
  19. }else{
  20. System.out.println("result is null");
  21. }
  22. }catch(Exception ex){
  23. ex.printStackTrace();
  24. }
  25. }
  26. }

运行结果是:float return value is:6

result is Hello123456,

下面对这两句重要的话进行解释:

  1. call.setOperationName(new QName(serviceurl,"hello"));
  2. String result=(String)call.invoke(new Object[]{"123456"});

1、QName里面接的hello是指方法名。

2、invoke里面接的123456是指方法的参数。

参考资料:

1、百度文库里面的:http://wendang.baidu.com/view/558a8f3143323968011c9279.html?from=rec&pos=3&weight=3&lastweight=2&count=5

2、新浪上的:http://blog.sina.com.cn/s/blog_4b9b442c0100rd87.html

3、ITEYE上的:http://hua04104.iteye.com/blog/850367

4、http://blog.sina.com.cn/s/blog_6307f1940100ohyh.html

手把手教你用axis1.4搭建webservice(转)的更多相关文章

  1. 史上最全最详细的环境搭建教程,行百里者手把手教你在windows下搭建Anaconda+pycharm+库文件(TensorFlow,numpy)环境搭建

    我是在搭建TensorFlow开发环境的道路上走了很多弯路 掉了很多头发,为了让广大同学们不在受苦受累 下面我将手把手教你学习如特快速搭建python环境 快速导入numpy,PIL,pillow,等 ...

  2. 手把手教你在Windows下搭建React Native Android开发环境

    最近看到React Native好像好厉害的样子,好奇心驱使之下体验了一下并将在Window下搭建React Natvie Android环境的步骤记录下来,并有需要的朋友参考.(我都是参考官方文档的 ...

  3. 手把手教你在Windows端搭建Redmine项目管理软件

    1.Redmine介绍 Redmine是用Ruby开发的基于web的项目管理软件,是用ROR框架开发的一套跨平台项目管理系统,据说是源于Basecamp的ror版而来,支持多种数据库,有不少自己独特的 ...

  4. 手把手教你用Eclipse+TestNG搭建接口自动化测试框架

    转载于:http://qa.blog.163.com/blog/static/190147002201510275306185/ 把群博里关于接口自动化的文章都看了一遍,都是关于测试过程中遇到的问题及 ...

  5. 手把手教你如何用eclipse搭建前端开发环境

    3.创建静态web工程 打开eclipse,选择file,new project 或者 new other...,选择web项中的static web project ,next. 输入你的项目名,如 ...

  6. 手把手教你学node之搭建node.js开发环境

    搭建node.js开发环境 本文只针对在Linux或者Mac下面.至于使用 Windows 并坚持玩新技术的同学,我坚信他们一定有着过人的.甚至是不可告人的兼容性 bug 处理能力,所以这部分同学麻烦 ...

  7. 手把手教你用 Spring Boot搭建一个在线文件预览系统!支持ppt、doc等多种类型文件预览

    昨晚搭建环境都花了好一会时间,主要在浪费在了安装 openoffice 这个依赖环境上(Mac 需要手动安装). 然后,又一步一步功能演示,记录,调试项目,并且简单研究了一下核心代码之后才把这篇文章写 ...

  8. 手把手教你用SonarQube+Jenkins搭建--前端项目--代码质量管理平台 (Window系统)

    前言 网上教程大多介绍的是Linux系统下SonarQube+Jenkins如何使用,这是因为这两款软件一般都是部署在服务器上,而大多数服务器,采用的都是Linux系统.大多数服务器用Linux的原因 ...

  9. 手把手教你在openshift上搭建wordpress博客(二)

    相同公布于:http://www.longgaming.com/archives/128 推荐前往阅读 这一篇文章主要介绍一些经常使用插件的使用和配置. 下面是我个人安装的一些插件.大家能够依据须要自 ...

随机推荐

  1. Boot loader: Grub进阶[转]

    Boot loader: Grub进阶 本文记录grub的一些进阶配置 关於核心功能当中的 vga 配置 事实上,你的 tty1~tty6 除了 80x24 的解析度外,还能够有其他解析度的支持喔!但 ...

  2. Event List 2

    The list of events can be found in src/switch_event.c in a char array called EVENT_NAMES and is summ ...

  3. 【转】关于.net framework4.0以及4.5安装失败,“安装时发生严重错误”……

    也不知道管不管用,先记着 今天忽然想装一个vs2010,然后装了好几遍,每次都在安装.net4.0的时候失败.好吧,我自己手动装行么.于是手动去装.net 4.0. 结果在还是返回"安装时发 ...

  4. Sql日期时间格式转换(转)

    原文出自:http://www.cnblogs.com/Gavinzhao/archive/2009/11/10/1599690.html sql server2000中使用convert来取得dat ...

  5. 如何清除某条SQL的执行计划

    如果遇到绑定窥探导致执行计划慢的情况,想要清除某条SQL的执行计划,让它硬解析,找了很久都没有找到直接操作share pool的方法(除非alter system flush shared_pool) ...

  6. [2014.01.27]WFsoft.wfWebCtrl.wfUrlPager 3.2

    wfUrlPager多功能.Net翻页组件,使用简单,功能强大. 提供"首页","上一页","下一页","末页",&qu ...

  7. 四、Spring——Spring MVC

    Spring MVC 1.Spring MVC概述 Spring MVC框架围绕DispatcherServlet这个核心展开,DispatcherServlet负责截获请求并将其分配给响应的处理器处 ...

  8. ZooKeeper程序员指南(转)

    译自http://zookeeper.apache.org/doc/trunk/zookeeperProgrammers.html 1 简介 本文是为想要创建使用ZooKeeper协调服务优势的分布式 ...

  9. js传递参数中包含+号时的处理方法

    encodeURI(url).replace(/\+/g, '%2B') 例子: $scope.getAnesthesiawaystatistical = function (annual, anes ...

  10. java语言实现堆排序

    package secondChapter; import java.util.Random; public class HeapSort { private static int AHeapSize ...