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. 使用Condition Variables 实现一个线程安全队列

    使用Condition Variables实现一个线程安全队列 测试机: i7-4800MQ .7GHz, logical core, physical core, 8G memory, 256GB ...

  2. (转)几种范数的解释 l0-Norm, l1-Norm, l2-Norm, … , l-infinity Norm

    几种范数的解释 l0-Norm, l1-Norm, l2-Norm, - , l-infinity Norm from Rorasa's blog l0-Norm, l1-Norm, l2-Norm, ...

  3. AsyncTask 轻量级的异步类

    初步:http://www.cnblogs.com/devinzhang/archive/2012/02/13/2350070.html 详细:http://blog.csdn.net/liuhe68 ...

  4. maven项目修改java编译版本的方式

    背景 使用 maven 3.x 安装到本地后,创建的项目一般都是基于JDK1.5版本.而目前大多数的项目已经升级到1.6或以上,尤其是Servlet3.0 已经要求Java6或以上版本的环境,往往需要 ...

  5. .net windows 服务创建、安装、卸载和调试

    原文:http://blog.csdn.net/angle860123/article/details/17375895 windows服务应用程序是一种长期运行在操作系统后台的程序,它对于服务器环境 ...

  6. 国内首家VR虚拟现实主题公园即将在北京推出

    近期,美国“The VOID”.澳洲“Zero Latency”两大虚拟现实主题乐园让许多爱好者兴奋至极,门票据说都已经预约到明年2月!在如此巨大的商机面前,谁将抢到国内VR虚拟现实主题公园第一块蛋糕 ...

  7. python学习-day15:局部变量与全局变量、嵌套函数、递归

    一.全局变量与局部变量 在子程序中定义的变量称为局部变量, 在程序的一开始定义的变量称为全局变量. 全局变量作用域是整个程序,局部变量作用域是定义该变量的子程序.当全局变量与局部变量同名时:在定义局部 ...

  8. Install Slax on USB device (Slax U 盘安装)

    Slax is a modern, portable, small and fast Linux operating system with a modular approach and outsta ...

  9. (LinkedList)Intersection of Two Linked Lists

    Write a program to find the node at which the intersection of two singly linked lists begins. For ex ...

  10. 大众点评试题分析(C/C++)

    1.main函数执行完毕,从栈中弹出操作函数 void fn1(void), fn2(void), fn3(void); int main() { atexit(fn3); atexit(fn1); ...