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. urllib2.open(req).read() 报403的错误:怎么办?

    http://www.douban.com/group/topic/18095751/ heads = {'Accept':'text/html,application/xhtml+xml,appli ...

  2. c#检测端口是否被占用

    当我们要创建一个Tcp/Ip Server connection ,我们需要一个范围在1000到65535之间的端口 . 但是本机一个端口只能一个程序监听,所以我们进行本地监听的时候需要检测端口是否被 ...

  3. [solr] - Facet

    Solr facet使用于分类统计,是最好的工具.下面例子使用facet将可模拟查询搜索出租房信息. 1.在schema.xml中的内容如下: <?xml version="1.0&q ...

  4. 3D数学 ---- 矩阵和线性变换[转载]

    http://blog.sina.com.cn/s/blog_536e0eaa0100jn7c.html 一般来说,方阵能描述任意线性变换.线性变换保留了直线和平行线,但原点没有移动.线性变换保留直线 ...

  5. c#数据类型之值类型和引用类型

    C#数据类型分隔为值类型和引用类型.而所用数据类型都继承自Object. 1. 值类型继承自System.ValueType,引用类型继承自System.Object.ValueType也直接继承自O ...

  6. MyBatis Sql语句中的转义字符

    1.在xml的sql语句中,不能直接用大于号.小于号要用转义字符 如果用小于号会报错误如下: org.apache.ibatis.builder.BuilderException: Error cre ...

  7. (medium)LeetCode 278.First Bad Version

    You are a product manager and currently leading a team to develop a new product. Unfortunately, the ...

  8. 12. Binary Tree Postorder Traversal && Binary Tree Preorder Traversal

    详见:剑指 Offer 题目汇总索引:第6题 Binary Tree Postorder Traversal            Given a binary tree, return the po ...

  9. 慕课网-安卓工程师初养成-5-4 使用 Eclipse 调试程序

    来源:http://www.imooc.com/video/1627 IDE断点调试功能 比如 之前的程序,写错了,变成如下 package com.imooc; import java.util.S ...

  10. [转载]: delphi中XLSReadWrite控件的使用(2)---delphi XE下安装

    一.下载 官方下载网址: http://www.axolot.com/components/download.htm 从这里可以下载到从Delphi5到DelphiXE全部支持的版本. 二.软件安装 ...