axis1,xfire,jUnit 测试案列+Web Service开发指南(中).pdf+axis1.jar下载    代码

项目和资源文档+jar 下载:http://download.csdn.net/detail/liangrui1988/5810873

项目内容:

部分主要代码:

axis1:

  1. package com.webservice.test;
  2.  
  3. /**
  4. * @author liangrui
  5. *
  6. 1:把axis-bin-1_4.zip 解压后的axis文件拷贝到tomcat webpaas目录下
  7. 2:直接把java文件拷贝到axis目录下 (是配置即时发部)
  8. 3:定时发布,有包名.
  9. 需要把编译好的java文件 也就是class文件拷贝到你的axis/WEB-INF/class文件下;
  10. 然后在WEB-INF目录下新建一个deploy.wsdd文件:
  11.  
  12. <deployment xmlns="http://xml.apache.org/axis/wsdd/"
  13. xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
  14. <!--服务相关配置-->
  15. <service name="helloworldWSDD" provider="java:RPC">
  16. <parameter name="allowedMethods" value="*"/>
  17. <parameter name="className" value="com.webservice.service.HelloWorld"/>
  18. <parameter name="scope" value="request"/>
  19. </service>
  20. </deployment>
  21. ****************************这个是我提前做好的文件****************************
  22. deploy.wsdd\start_Services.bat文件拷贝到axis/WEB-INF下( 这个是配置 定时发布的)
  23. start_Services.bat //打开服务 《也可以在cmd下操作》
  24. ***********************************************************************
  25. 4:cmd方式:
  26. 打开cmd cd到你tomcat目录下 axis WEB-INF下,输入命令:
  27. java -Djava.ext.dirs=lib org.apache.axis.client.AdminClient deploy.wsdd
  28. //编译当前文件夹(WEB-INF)下的 deploy.wsdd文件,会生成一个server-config.wsdd文件
  29.  
  30. 5:浏览器访问的时候会根据你的请求名字
  31. 来找这个配制文件(server-config.wsdd) 里的service 节点下的name属性 ,
  32. 再详细的解析==(也就是deploy.wsdd 文件 下的 <service name="xx" ....>)
  33.  
  34. shutDown_Services.bat //关闭服条 根打开服务操作一样
  35. *
  36. */
  37.  
  38. import java.rmi.RemoteException;
  39.  
  40. import javax.xml.namespace.QName;
  41. import javax.xml.rpc.ServiceException;
  42.  
  43. import org.apache.axis.client.Call;
  44. import org.apache.axis.client.Service;
  45.  
  46. public class Test {
  47. public static void main(String[] args) {
  48.  
  49. jwsTest();// 即时发部
  50.  
  51. deployTest(); //定时发布 部署,有包名
  52.  
  53. }
  54.  
  55. /**
  56. * 即时发部
  57. */
  58. public static void jwsTest(){
  59. try {
  60. // 访问的url
  61. String url="http://localhost:8080/axis/HelloWorld.jws";
  62. // 创建service
  63. Service service = new Service();
  64. // 通过service 创建call
  65. Call call =(Call) service.createCall();
  66. // 设置访问的webservice
  67. call.setTargetEndpointAddress(url);
  68. //调用指定方法
  69. call.setOperationName(new QName(url,"sayHello"));
  70. //传送参数 并返回结果
  71. String resource=(String) call.invoke(new Object[]{"accp157"});
  72.  
  73. System.out.println("返回的数据:"+resource);
  74.  
  75. } catch (ServiceException e) {
  76. // TODO Auto-generated catch block
  77. e.printStackTrace();
  78. } catch (RemoteException e) {
  79. // TODO Auto-generated catch block
  80. e.printStackTrace();
  81. }
  82. }
  83. /**
  84. * 定时发布
  85. */
  86. public static void deployTest(){
  87. // 访问的url
  88. // http://项目路径 /services/服务名称(需要和deploy.wsdd 中的service 配置一)
  89. String url ="http://localhost:8080/axis/services/helloworldWSDD";
  90. // 创建service
  91. Service service = new Service();
  92. try {
  93. // 创建call
  94. Call call = (Call) service.createCall();
  95. // 设置访问的url
  96. call.setTargetEndpointAddress(url);
  97. // 设置调用的webservice 的方法
  98. call.setOperationName(new QName(url,"jia"));
  99. // 执行
  100. int result = (Integer) call.invoke(new Object[]{2,3});
  101. // 执行结果
  102. System.out.println("结果是:"+result);
  103.  
  104. call.setOperationName(new QName(url,"jian"));
  105.  
  106. result = (Integer) call.invoke(new Object[]{2,3});
  107.  
  108. System.out.println("结果是:"+result);
  109. } catch (Exception e) {
  110. // TODO Auto-generated catch block
  111. e.printStackTrace();
  112. }
  113.  
  114. }
  115.  
  116. }

java文件

  1. public class HelloWorld {
  2. public String sayHello(String name){
  3. System.out.println("hello:"+name);
  4. return "hello.."+name;
  5. }
  6.  
  7. }

有包的java文件

  1. package com.webservice.service;
  2.  
  3. /**
  4. * 加减乘除
  5. * @author Administrator
  6. *
  7. */
  8. public class HelloWorld {
  9.  
  10. public int jia(int num1,int num2){
  11. return num1+num2;
  12. }
  13. public int jian(int num1,int num2){
  14. return num1-num2;
  15. }
  16. public int chen(int num1,int num2){
  17. return num1*num2;
  18. }
  19. public int chun(int num1,int num2){
  20. if(num2 > 0){
  21. return num1/num2;
  22. }else{
  23. return 0 ;
  24. }
  25. }
  26.  
  27. }

axis1 调用天气预报测试:

  1. package com.webservice.test;
  2.  
  3. import java.rmi.RemoteException;
  4.  
  5. import org.apache.axis.client.Call;
  6. import org.apache.axis.client.Service;
  7.  
  8. import javax.xml.namespace.QName;
  9.  
  10. import javax.xml.rpc.ServiceException;
  11.  
  12. public class ForecastTest {
  13. public static void main(String[] args) {
  14.  
  15. // http://WebXml.com.cn/是wsdl中definitions根节点的targetNamespace属性
  16.  
  17. // webservice路径
  18. // 这里后面加不加 "?wsdl" 效果都一样的
  19. String endpoint = "http://webservice.webxml.com.cn/WebServices/WeatherWS.asmx?wsdl";
  20. String[] res = null;
  21.  
  22. // 查询城市天气的接口方法名
  23. String operationName = "getWeather";
  24. // 定义service对象
  25. Service service = new Service();
  26. // 创建一个call对象
  27. Call call = null;
  28. try {
  29. call = (Call) service.createCall();
  30. } catch (ServiceException e1) {
  31. // TODO Auto-generated catch block
  32. e1.printStackTrace();
  33. }
  34. // 设置目标地址,即webservice路径
  35. call.setTargetEndpointAddress(endpoint);
  36. // 设置操作名称,即方法名称
  37. call.setOperationName(new QName("http://WebXml.com.cn/",operationName));
  38. // 设置方法参数
  39. call.addParameter( new QName("http://WebXml.com.cn/","theCityCode"),
  40. org.apache.axis.encoding.XMLType.XSD_STRING,
  41. javax.xml.rpc.ParameterMode.IN);
  42. call.addParameter( new QName("http://WebXml.com.cn/","theUserID"),
  43. org.apache.axis.encoding.XMLType.XSD_STRING,
  44. javax.xml.rpc.ParameterMode.IN);
  45. // 设置返回值类型
  46. //对于返回是字符串数组的返回类型只有这两种可行
  47.  
  48. //call.setReturnType(org.apache.axis.encoding.XMLType.SOAP_VECTOR);
  49. call.setReturnClass(java.lang.String[].class);
  50.  
  51. call.setUseSOAPAction(true);
  52. call.setSOAPActionURI("http://WebXml.com.cn/"+"getWeather");
  53.  
  54. String cityCode="广州";
  55. String userId="";
  56. try {
  57. res=(String[]) call.invoke(new Object[]{cityCode,userId});
  58. } catch (RemoteException e) {
  59. // TODO Auto-generated catch block
  60. e.printStackTrace();
  61. }
  62.  
  63. // 如果返回类型是org.apache.axis.encoding.XMLType.SOAP_VECTOR时用下面的转型接收
  64. //Vector v=(Vector) call.invoke(new Object[]{cityCode,userId});
  65. for(String str:res)
  66. {
  67. System.out.println(str);
  68. }
  69. // return res;
  70. }
  71. }

axis1,xfire,jUnit 测试案列+开Web Service开发指南+axis1.jar下载 代码的更多相关文章

  1. 使用Junit测试一个 spring静态工厂实例化bean 的例子,所有代码都没有问题,但是出现java.lang.IllegalArgumentException异常

    使用Junit测试一个spring静态工厂实例化bean的例子,所有代码都没有问题,但是出现 java.lang.IllegalArgumentException 异常, 如下图所示: 开始以为是代码 ...

  2. JAX-RS 方式的 RESTful Web Service 开发

    JAX-RS 方式的 RESTful Web Service 开发 ——基于 CXF+Spring 的实现 Web Service 目前在风格上有两大类,一个是基于 SOAP 协议,一个是完全遵循 H ...

  3. 微软实战训练营(X)重点班第(1)课:SOA必备知识之ASP.NET Web Service开发实战

    微软实战训练营 上海交大(A)实验班.(X)重点班 内部课程资料 链接:http://pan.baidu.com/s/1jGsTjq2 password:0wmf <微软实战训练营(X)重点班第 ...

  4. java+web文件的上传和下载代码

    一般10M以下的文件上传通过设置Web.Config,再用VS自带的FileUpload控件就可以了,但是如果要上传100M甚至1G的文件就不能这样上传了.我这里分享一下我自己开发的一套大文件上传控件 ...

  5. 应用Apache Axis进行Web Service开发

    转自(http://tscjsj.blog.51cto.com/412451/84813) 一.概述 SOAP原意为Simple Object Access Protocol(简单对象访问协议),是一 ...

  6. 【web开发 | 移动APP开发】 Web 移动开发指南(2017.01.05更新)

    版本记录 - 版本1.0 创建文章(2016.12.30) - 版本1.1 更正了hybird相关知识:增加了参考文章(2017.01.05): + Web APP更正为响应式移动站点与页面,简称响应 ...

  7. jboss上的soap web service开发示例

    以下示例,由jboss quickstart示例代码得来: 一.创建一个常规的dynamic web项目,建议支持maven ,项目的关键属性参考下图: 二.定义服务接口及参数对象 HelloWorl ...

  8. Java restful web service 开发入门

    可用的框架有不少,我用的是jersey. 直接上代码,其实,如果你会web service 这个restful的就很好理解了,自己跑一遍就OK了 用到的类 User.java package demo ...

  9. Java Restful Web Service 学习指南

    Restful是一种架构style,目前常说的有restful web service, resultful http.现在热搜榜的微服务,大多数会采用Restful方式. JAX-RS 作为一个Re ...

随机推荐

  1. github basic usage in windows

    1. create a new accout, create orginazation, create repo 2. install git in your local pc Note: you c ...

  2. iOS开发之在地图上绘制出你运行的轨迹

    首先我们看下如何在地图上绘制曲线.在Map Kit中提供了一个叫MKPolyline的类,我们可以利用它来绘制曲线,先看个简单的例子. 使用下面代码从一个文件中读取出经纬度,然后创建一个路径:MKPo ...

  3. LCD开发之汉字显示

    一.LCD显示原理 利用液晶制成的显示器称为LCD,根据驱动方式可分为静态驱动.简单矩阵驱动以及主动矩阵驱动3种.当中,简单矩阵型又可再细分扭转向列型(TN)和超扭转式向列型(STN)两种,而主动矩阵 ...

  4. 玩转Web之servlet(四)---B/S是怎样使用http协议完毕通信过程的

    在上一篇文章中,我简单的说了一下B/S架构的流程图,关于浏览器和server之间的通信过程知识含糊的说了一下,在这篇文章中我再总结一下B/S架构里是怎样利用http协议去完毕通信的. (一)通讯过程 ...

  5. 在线Youtube视频下载,修改文本,剪切制作动画的最新方法

    刚刚(减去编写本文章的时间,大概20分钟前吧)在看国外最新技术资讯的时候发现有个方法可以让我们快速去下载Youtube上面的视频,不敢独享,我自己都没有怎么玩就所以立刻post上来广而告之,希望对大家 ...

  6. Thrift实践

    Thrift实践:(一)安装 -- 未完待续   1. 新建一个目录,C:\test\thrift-test,里面建2个子文件夹,client-node和sever-csharp,然后把Thrift官 ...

  7. 苹果iOS苹果公司的手机用户都有权索赔

    大家知道.手机中的操作系统(基础软件)存储在手机固(firm,ware)之中,一般而言,手机用户自己是不能修改的. 苹果iOS手机的系统后门(服务程序)也存储在手机固件之中.手机用户自己是无法删除的. ...

  8. ural1519插头DP

    1519. Formula 1 Time limit: 1.0 second Memory limit: 64 MB Background Regardless of the fact, that V ...

  9. openwrt路由器更换了Flash之后需要修改的源码

    假如我使用的是WR703N,改为8M内存: 1 修改openwrt/target/linux/ar71xx/image/Makefile文件 $(eval $(call SingleProfile,T ...

  10. SQL Server 远程链接服务器详细配置

    原文:SQL Server 远程链接服务器详细配置[转载] http://hi.baidu.com/luxi0194/blog/item/a5c2a9128a705cc6c2fd7803.html - ...