axis1,xfire,jUnit 测试案列+开Web Service开发指南+axis1.jar下载 代码
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下载 代码的更多相关文章
- 使用Junit测试一个 spring静态工厂实例化bean 的例子,所有代码都没有问题,但是出现java.lang.IllegalArgumentException异常
使用Junit测试一个spring静态工厂实例化bean的例子,所有代码都没有问题,但是出现 java.lang.IllegalArgumentException 异常, 如下图所示: 开始以为是代码 ...
- JAX-RS 方式的 RESTful Web Service 开发
JAX-RS 方式的 RESTful Web Service 开发 ——基于 CXF+Spring 的实现 Web Service 目前在风格上有两大类,一个是基于 SOAP 协议,一个是完全遵循 H ...
- 微软实战训练营(X)重点班第(1)课:SOA必备知识之ASP.NET Web Service开发实战
微软实战训练营 上海交大(A)实验班.(X)重点班 内部课程资料 链接:http://pan.baidu.com/s/1jGsTjq2 password:0wmf <微软实战训练营(X)重点班第 ...
- java+web文件的上传和下载代码
一般10M以下的文件上传通过设置Web.Config,再用VS自带的FileUpload控件就可以了,但是如果要上传100M甚至1G的文件就不能这样上传了.我这里分享一下我自己开发的一套大文件上传控件 ...
- 应用Apache Axis进行Web Service开发
转自(http://tscjsj.blog.51cto.com/412451/84813) 一.概述 SOAP原意为Simple Object Access Protocol(简单对象访问协议),是一 ...
- 【web开发 | 移动APP开发】 Web 移动开发指南(2017.01.05更新)
版本记录 - 版本1.0 创建文章(2016.12.30) - 版本1.1 更正了hybird相关知识:增加了参考文章(2017.01.05): + Web APP更正为响应式移动站点与页面,简称响应 ...
- jboss上的soap web service开发示例
以下示例,由jboss quickstart示例代码得来: 一.创建一个常规的dynamic web项目,建议支持maven ,项目的关键属性参考下图: 二.定义服务接口及参数对象 HelloWorl ...
- Java restful web service 开发入门
可用的框架有不少,我用的是jersey. 直接上代码,其实,如果你会web service 这个restful的就很好理解了,自己跑一遍就OK了 用到的类 User.java package demo ...
- Java Restful Web Service 学习指南
Restful是一种架构style,目前常说的有restful web service, resultful http.现在热搜榜的微服务,大多数会采用Restful方式. JAX-RS 作为一个Re ...
随机推荐
- JS判断Array数组中是否包含指定元素
1.调用方式: var arr=["a","b"]; alert(arr.in_array("a")) 2.JS判断数组是否包含指定元素方法 ...
- NotePad++ for PHP
原文:NotePad++ for PHP 一.安装设置 1.首先根据你的系统下载相应的安装文件.http://notepad-plus-plus.org/ Notepad++插件:http://sou ...
- java通过SVG导出图片
import java.io.ByteArrayInputStream; import java.io.File; import java.io.FileOutputStream; import ja ...
- Java Persistence with MyBatis 3(中国版) 第五章 与Spring集成
MyBatis-Spring它是MyBatis子模块框.它用来提供流行的依赖注入框架Spring无缝集成. Spring框架是一个基于依赖注入(Dependency Injection)和面向切面编程 ...
- POJ 3070 Fibonacci(矩阵高速功率)
职务地址:POJ 3070 用这个题学会了用矩阵高速幂来高速求斐波那契数. 依据上个公式可知,第1行第2列和第2行第1列的数都是第n个斐波那契数.所以构造矩阵.求高速幂就可以. 代码例如以下: #in ...
- Android EventBus现实 听说你out该
转载请注明出处:http://blog.csdn.net/lmj623565791/article/details/40794879.本文出自:[张鸿洋的博客] 1.概述 近期大家面试说常常被问到Ev ...
- 增加VMWare开机画面时间,来防止快速跳过而无法进入BIOS
用记事本打开xx.vmx,在里面添加一行: bios.bootDelay = "30000" 意思是开机后,在开机画面里停留30秒.
- EnterpriseLibrary 6.0(微软企业库6.0学习笔记) 之Data Access Block 配置和获取链接字符串
EnterpriseLibrary 的特点是快速开发,融合了微软工程师多年的经验,现在在微软内部有专门的一个小组在完善EnterpriseLibray,最近的更新时间是April 2013. 相关链接 ...
- 开始DDD
如何开始DDD(完) 连续写了两篇文章,这一篇我想是序的完结篇了.结合用户注册的例子再将他简单丰富一下.在这里只添加一个简单需求,就是用户注册成功后给用户发一封邮件.补充一下之前的代码 public ...
- MVC5入门学习系列④
添加Model且简单的使用EF 对于EF(EntityFramework)不了解的朋友可以去百度文科或者在园子里搜一些简资源看下,假如和我一样知道EF的概念,那么就知道EF有一个code first的 ...