手把手教你用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 推荐前往阅读 这一篇文章主要介绍一些经常使用插件的使用和配置. 下面是我个人安装的一些插件.大家能够依据须要自 ...
随机推荐
- kuangbin_MST C (POJ 2031)
全程double精度就能过了 间接0距离不用管 prim自动连起来的 G++交的话只能用%f输出 C++的话加不加l都可以 (这么说以后用%f肯定不会错咯) 不过我不懂为什么他们的空间时间差了好多倍. ...
- Struts2 Action中的方法命名不要以get开头
偶然发现,在调用一个action中的某个方法时,会自动调用另一个无关的方法,找了好久,最后发现是方法命名的问题,方法命名以get开头,action会自动调用!所以,以后再写action中的方法时尽量不 ...
- windows多线程相关
1.多线程同步的方法 a)entercirticalsection leaveciriticalsection b)Mutex互斥对象 waitforsingleobject releasemutex ...
- cdr创建样式与样式集的方法
样式是一组定义对象属性的格式化属性,如轮廓或填充.例如,要定义轮廓样式,您可以指定轮廓宽度.颜色和线条类型等属性.要定义字符样式,您可以指定字体类型.字体样式和大小.文本颜色和背景色.字符位置.大写等 ...
- jQuery HTML节点元素修改、追加的方法 html()、append()、prepend()、
我们先拟定一个代码场景 <div>start</div> <p>123</p> <div>end</div> html() 操作 ...
- C string.h 常用函数
参考:http://womendu.iteye.com/blog/1218155 http://blog.csdn.net/zccst/article/details/4294565 还有一些,忘记了 ...
- AndroidImagePicker 的使用
github地址 https://github.com/easonline/AndroidImagePicker 效果图
- System.Windows.Media.Imageing.BItmapImage 这么用才不会占用文件
// Read byte[] from png file BinaryReader binReader = new BinaryReader(File.Open(filepath, FileMode. ...
- 使用ADD_CUSTOM_COMMAND 添加自定义命令
e.g. ADD_CUSTOM_COMMAND( TARGET world_server COMMAND cp ${CMAKE_SOURCE_DIR}/CMak ...
- oracle查看所有表的数据量并排序
源地址:http://blog.csdn.net/zhanggnol/article/details/6683697 select t.table_name,t.num_rows from user_ ...