手把手教你用axis1.4搭建webservice(转)
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源代码如下:
- package webservice.axis.wsdd;
- public class CopyOfHelloWorldWSDD {
- private int requestCount=0;
- public String hello(String cardNo){
- requestCount++;
- System.out.println("requestCount="+requestCount);
- System.out.println("Received:"+cardNo);
- return "Hello"+cardNo;
- }
- public float add(float a,float b){
- requestCount++;
- String result="a="+a+",b"+b;
- System.out.println("requestCount"+requestCount);
- System.out.println("Received:"+result);
- return a+b;
- }
- }
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,在里面输入:
- <deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
- <service name="HelloWorldWSDD" provider="java:RPC">
- <parameter name="className" value="webservice.axis.wsdd.HelloWorldWSDD" />
- <parameter name="allowedMethods" value="*" />
- <parameter name="scope" value="request" />
- </service>
- </deployment>
8、运行CMD,进入目录到tomcat_home\webapps\axis\WEB-INF\,输入如下命令:
- 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、在浏览器输入http://localhost:8080/axis/services/HelloWorldWSDD
- 2、在浏览器输入http://localhost:8080/axis/servlet/AxisServlet
- 2者都可以用来简单测试webservice是否处于可用状态。
10、编写客户端进行测试。在同样的包下建一个class叫Client
客户端的核心就是引用url。
源代码如下:
- package webservice.axis.wsdd;
- import javax.xml.namespace.QName;
- import org.apache.axis.client.Call;
- import org.apache.axis.client.Service;
- public class CopyOfClient {
- public static void main(String args[]){
- try{
- String serviceurl="http://localhost:8080/axis/services/HelloWorldWSDD";
- Service service=new Service();
- Call call=(Call)service.createCall();
- call.setTargetEndpointAddress(serviceurl);
- call.setOperationName(new QName(serviceurl,"hello"));
- String result=(String)call.invoke(new Object[]{"123456"});
- call.setOperationName(new QName(serviceurl,"add"));
- Float returnValue=(Float)call.invoke(new Object[]{new Float(3.2),new Float(2.8)});
- System.out.println("float return value is:"+returnValue);
- if(result!=null){
- System.out.println("result="+result);
- }else{
- System.out.println("result is null");
- }
- }catch(Exception ex){
- ex.printStackTrace();
- }
- }
- }
运行结果是:float return value is:6
result is Hello123456,
下面对这两句重要的话进行解释:
- call.setOperationName(new QName(serviceurl,"hello"));
- String result=(String)call.invoke(new Object[]{"123456"});
1、QName里面接的hello是指方法名。
2、invoke里面接的123456是指方法的参数。
参考资料:
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(转)的更多相关文章
- 史上最全最详细的环境搭建教程,行百里者手把手教你在windows下搭建Anaconda+pycharm+库文件(TensorFlow,numpy)环境搭建
我是在搭建TensorFlow开发环境的道路上走了很多弯路 掉了很多头发,为了让广大同学们不在受苦受累 下面我将手把手教你学习如特快速搭建python环境 快速导入numpy,PIL,pillow,等 ...
- 手把手教你在Windows下搭建React Native Android开发环境
最近看到React Native好像好厉害的样子,好奇心驱使之下体验了一下并将在Window下搭建React Natvie Android环境的步骤记录下来,并有需要的朋友参考.(我都是参考官方文档的 ...
- 手把手教你在Windows端搭建Redmine项目管理软件
1.Redmine介绍 Redmine是用Ruby开发的基于web的项目管理软件,是用ROR框架开发的一套跨平台项目管理系统,据说是源于Basecamp的ror版而来,支持多种数据库,有不少自己独特的 ...
- 手把手教你用Eclipse+TestNG搭建接口自动化测试框架
转载于:http://qa.blog.163.com/blog/static/190147002201510275306185/ 把群博里关于接口自动化的文章都看了一遍,都是关于测试过程中遇到的问题及 ...
- 手把手教你如何用eclipse搭建前端开发环境
3.创建静态web工程 打开eclipse,选择file,new project 或者 new other...,选择web项中的static web project ,next. 输入你的项目名,如 ...
- 手把手教你学node之搭建node.js开发环境
搭建node.js开发环境 本文只针对在Linux或者Mac下面.至于使用 Windows 并坚持玩新技术的同学,我坚信他们一定有着过人的.甚至是不可告人的兼容性 bug 处理能力,所以这部分同学麻烦 ...
- 手把手教你用 Spring Boot搭建一个在线文件预览系统!支持ppt、doc等多种类型文件预览
昨晚搭建环境都花了好一会时间,主要在浪费在了安装 openoffice 这个依赖环境上(Mac 需要手动安装). 然后,又一步一步功能演示,记录,调试项目,并且简单研究了一下核心代码之后才把这篇文章写 ...
- 手把手教你用SonarQube+Jenkins搭建--前端项目--代码质量管理平台 (Window系统)
前言 网上教程大多介绍的是Linux系统下SonarQube+Jenkins如何使用,这是因为这两款软件一般都是部署在服务器上,而大多数服务器,采用的都是Linux系统.大多数服务器用Linux的原因 ...
- 手把手教你在openshift上搭建wordpress博客(二)
相同公布于:http://www.longgaming.com/archives/128 推荐前往阅读 这一篇文章主要介绍一些经常使用插件的使用和配置. 下面是我个人安装的一些插件.大家能够依据须要自 ...
随机推荐
- javascript的document.execCommand(转)
document.execCommand()方法处理html数据时常用语法格式如下: 代码: document.execCommand(sCommand[,交互方式, 动态参数]) 其 中:sComm ...
- 论文笔记之:Conditional Generative Adversarial Nets
Conditional Generative Adversarial Nets arXiv 2014 本文是 GANs 的拓展,在产生 和 判别时,考虑到额外的条件 y,以进行更加"激烈 ...
- Node.js热部署方式
1. supervisor: 2. hotnode: 3. node-dev: 4. nodemon:
- Action、Action<T>、Func<T> 匿名函数的写法
void ht_HLB_Set(Dictionary<int, int> dic) { //匿名函数 Action<int> fun = (int jhShare_Iid) = ...
- Appium for Mac 环境准备篇
之前写过一篇Appium for windows的文章,因为是09年的T400,启动Android模拟器的时候死机三次,那就公司申请台Macbook air吧,15寸的Macbook Pro实在太重了 ...
- VS2013使用winsock.h和winsock2.h发生冲突后的终极解决方法
问题:彻底无语了,不小心某个文件包含了windows.h头文件,而windows.h文件里面包含着winsock.h文件, 如果你下次使用winsock2.h文件时,位置不对,然后编译器会给你一大堆重 ...
- 删除sde用户问题
删除SDE用户(GIS地图数据用户),长时间删除没反应,结束drop user sde cascade命令后,重新执行,结果报ORA-00604 ORA-21700 select user_id,us ...
- tp框架 中的时间 查询范围
$where['add_time'] = array(array('egt',$starttime),array('elt',$endtime),'AND');
- HTML图像映射
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- Python之路【第十六篇】:Django【基础篇】
Python之路[第十六篇]:Django[基础篇] Python的WEB框架有Django.Tornado.Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了O ...