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

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

项目内容:

部分主要代码:

axis1:

package com.webservice.test;

/**
* @author liangrui
*
1:把axis-bin-1_4.zip 解压后的axis文件拷贝到tomcat webpaas目录下
2:直接把java文件拷贝到axis目录下 (是配置即时发部)
3:定时发布,有包名.
需要把编译好的java文件 也就是class文件拷贝到你的axis/WEB-INF/class文件下;
然后在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="allowedMethods" value="*"/>
<parameter name="className" value="com.webservice.service.HelloWorld"/>
<parameter name="scope" value="request"/>
</service>
</deployment>
****************************这个是我提前做好的文件****************************
deploy.wsdd\start_Services.bat文件拷贝到axis/WEB-INF下( 这个是配置 定时发布的)
start_Services.bat //打开服务 《也可以在cmd下操作》
***********************************************************************
4:cmd方式:
打开cmd cd到你tomcat目录下 axis WEB-INF下,输入命令:
java -Djava.ext.dirs=lib org.apache.axis.client.AdminClient deploy.wsdd
//编译当前文件夹(WEB-INF)下的 deploy.wsdd文件,会生成一个server-config.wsdd文件 5:浏览器访问的时候会根据你的请求名字
来找这个配制文件(server-config.wsdd) 里的service 节点下的name属性 ,
再详细的解析==(也就是deploy.wsdd 文件 下的 <service name="xx" ....>) shutDown_Services.bat //关闭服条 根打开服务操作一样
*
*/ import java.rmi.RemoteException; import javax.xml.namespace.QName;
import javax.xml.rpc.ServiceException; import org.apache.axis.client.Call;
import org.apache.axis.client.Service; public class Test {
public static void main(String[] args) { jwsTest();// 即时发部 deployTest(); //定时发布 部署,有包名 } /**
* 即时发部
*/
public static void jwsTest(){
try {
// 访问的url
String url="http://localhost:8080/axis/HelloWorld.jws";
// 创建service
Service service = new Service();
// 通过service 创建call
Call call =(Call) service.createCall();
// 设置访问的webservice
call.setTargetEndpointAddress(url);
//调用指定方法
call.setOperationName(new QName(url,"sayHello"));
//传送参数 并返回结果
String resource=(String) call.invoke(new Object[]{"accp157"}); System.out.println("返回的数据:"+resource); } catch (ServiceException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (RemoteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* 定时发布
*/
public static void deployTest(){
// 访问的url
// http://项目路径 /services/服务名称(需要和deploy.wsdd 中的service 配置一)
String url ="http://localhost:8080/axis/services/helloworldWSDD";
// 创建service
Service service = new Service();
try {
// 创建call
Call call = (Call) service.createCall();
// 设置访问的url
call.setTargetEndpointAddress(url);
// 设置调用的webservice 的方法
call.setOperationName(new QName(url,"jia"));
// 执行
int result = (Integer) call.invoke(new Object[]{2,3});
// 执行结果
System.out.println("结果是:"+result); call.setOperationName(new QName(url,"jian")); result = (Integer) call.invoke(new Object[]{2,3}); System.out.println("结果是:"+result);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
} } }

java文件

public class HelloWorld {
public String sayHello(String name){
System.out.println("hello:"+name);
return "hello.."+name;
} }

有包的java文件

package com.webservice.service;

/**
* 加减乘除
* @author Administrator
*
*/
public class HelloWorld { public int jia(int num1,int num2){
return num1+num2;
}
public int jian(int num1,int num2){
return num1-num2;
}
public int chen(int num1,int num2){
return num1*num2;
}
public int chun(int num1,int num2){
if(num2 > 0){
return num1/num2;
}else{
return 0 ;
}
} }

axis1 调用天气预报测试:

package com.webservice.test;

import java.rmi.RemoteException;

import org.apache.axis.client.Call;
import org.apache.axis.client.Service; import javax.xml.namespace.QName; import javax.xml.rpc.ServiceException; public class ForecastTest {
public static void main(String[] args) { // http://WebXml.com.cn/是wsdl中definitions根节点的targetNamespace属性 // webservice路径
// 这里后面加不加 "?wsdl" 效果都一样的
String endpoint = "http://webservice.webxml.com.cn/WebServices/WeatherWS.asmx?wsdl";
String[] res = null; // 查询城市天气的接口方法名
String operationName = "getWeather";
// 定义service对象
Service service = new Service();
// 创建一个call对象
Call call = null;
try {
call = (Call) service.createCall();
} catch (ServiceException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
// 设置目标地址,即webservice路径
call.setTargetEndpointAddress(endpoint);
// 设置操作名称,即方法名称
call.setOperationName(new QName("http://WebXml.com.cn/",operationName));
// 设置方法参数
call.addParameter( new QName("http://WebXml.com.cn/","theCityCode"),
org.apache.axis.encoding.XMLType.XSD_STRING,
javax.xml.rpc.ParameterMode.IN);
call.addParameter( new QName("http://WebXml.com.cn/","theUserID"),
org.apache.axis.encoding.XMLType.XSD_STRING,
javax.xml.rpc.ParameterMode.IN);
// 设置返回值类型
//对于返回是字符串数组的返回类型只有这两种可行 //call.setReturnType(org.apache.axis.encoding.XMLType.SOAP_VECTOR);
call.setReturnClass(java.lang.String[].class); call.setUseSOAPAction(true);
call.setSOAPActionURI("http://WebXml.com.cn/"+"getWeather"); String cityCode="广州";
String userId="";
try {
res=(String[]) call.invoke(new Object[]{cityCode,userId});
} catch (RemoteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} // 如果返回类型是org.apache.axis.encoding.XMLType.SOAP_VECTOR时用下面的转型接收
//Vector v=(Vector) call.invoke(new Object[]{cityCode,userId});
for(String str:res)
{
System.out.println(str);
}
// return res;
}
}

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. java中HashSet详解

    HashSet 的实现 对于 HashSet 而言,它是基于 HashMap 实现的,HashSet 底层采用 HashMap 来保存所有元素,因此 HashSet 的实现比较简单,查看 HashSe ...

  2. 浅谈JavaScript性能

    最近在JavaScript性能方面有所感悟,把我的经验分给大家: 说到JavaScript,就不得不说它的代码的运行速度—— 在我初学JavaScript的时候,只是觉得它是一个很强大的脚本.渐渐的, ...

  3. installshield制作的安装包卸载时提示重启动的原因以及解决办法

    原文:installshield制作的安装包卸载时提示重启动的原因以及解决办法 有时候卸载installshield制作的安装包程序,卸载完会提示是否重启电脑以完成所有卸载,产生这个提示的常见原因有如 ...

  4. Android高效的应用程序开发工具集1---ant构建一个简单的Android工程

    在java编译那些事通过提到ant编译Java工程,如今扩大到用它来构建Android目,事实上道理是相通的.变化的仅仅是使用的形式.ant构建相比IDE的优点是多个子项目使用自己定义jar包时,an ...

  5. Shell的学习就从重装系统开始吧

    小标题:与Fedora的爱恨情仇 干巴巴的shell学习实在枯燥,看来学习姿势还是要从实践入手 起因:传说中的不作死就不会死,昨晚偶遇一本PDF,讲glade编辑界面的,以下就被吸引了,跟着讲解搞出个 ...

  6. Sql Server 自定义数据类型

    SQLServer 提供了 25 种基本数据类型: ·Binary [(n)]  二进制数据 既可以是固定长度的(Binary),也可以是变长度的.其中,n 的取值范围是从 1 到 8000.其存储窨 ...

  7. [译]ava 设计模式之构造器

    (文章翻译自Java Design Pattern: Builder) 构造器模式的关键之处在于它使用一步接招一步的流程去构建东西,例如:尽管构建的每一步是不相同的但是每一个产品还是遵循相同的流程. ...

  8. leetcode第16题--3Sum Closest

    Problem:Given an array S of n integers, find three integers in S such that the sum is closest to a g ...

  9. 使用Windows2003创建DHCP服务器 - 进阶者系列 - 学习者系列文章

    Windows 2003提供的DHCP服务还是挺强大的.下面大概介绍下DHCP服务器的配置. 1.  通过控制面板安装DHCP服务 2.  打开DHCP配置项 3.  选择 新建作用域 4.  输入名 ...

  10. Mysql高级之主从复制

    原文:Mysql高级之主从复制 主从复制不就是多台服务器嘛!,一个改变另一个也改变啦,内容其实都一样! 原理: 对数据库进行操作会生成一个文件,binlog(二进制文件),从服务器配置relaylog ...