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. kuangbin_MST C (POJ 2031)

    全程double精度就能过了 间接0距离不用管 prim自动连起来的 G++交的话只能用%f输出 C++的话加不加l都可以 (这么说以后用%f肯定不会错咯) 不过我不懂为什么他们的空间时间差了好多倍. ...

  2. [Hibernate] - Generic Dao

    使用泛型写了一个通用的Hibernate DAO类. GenericDao接口 package com.my.dao; import java.io.Serializable; import java ...

  3. css3++js钟表

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. android.view.WindowLeaked

    08-30 13:17:05.645 25543-25543/com.tongyan.nanjing.subway E/WindowManager: android.view.WindowLeaked ...

  5. web.xml 的加载过程

    初始化过程: 在启动Web项目时,容器(比如Tomcat)会读web.xml配置文件中的两个节点<listener>和<contex-param>. 接着容器会创建一个Serv ...

  6. NOIP模拟赛-时间与空间之旅

    题目描述 公元22××年,宇宙中最普遍的交通工具是spaceship.spaceship的出现使得星系之间的联系变得更为紧密,所以spaceship船长也成了最热门的职业之一.当然,要成为一名出色的船 ...

  7. 在c中保存状态

    1. 注册表 注册表是一个普通的table,我们可以将c函数中需要保存的状态都存储在注册表中,注册表是可以被多个c模块共享的. 由于注册表是一个普通table,我们同样可以在栈中对其进行操作,只是这个 ...

  8. transition实现自定义tips淡入淡出效果

    transition实现动画的时候,只能实现指定属性的渐变,元素显隐要通过opacity来实现: 做了一个小的demo: <!doctype html> <html> < ...

  9. 通过AngularJS实现图片上传及缩略图展示

    从项目中截出的代码 HTML部分: <section> <img src="image/user-tuijian/tuijian_banner.png" /> ...

  10. PCI Express(四) - The transaction layer

    原文出处:http://www.fpga4fun.com/PCI-Express4.html 感觉没什么好翻译的,都比较简单,主要讲了TLP的帧结构 In the transaction layer, ...