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 ...
随机推荐
- JDBC连接池的简单实现
首先解释一下,我在做自己android发育.java web这是我的弱点,就在最近,京东云免费,因此,要折腾几.有一点经验,特别是作为共享. 假设内容的文章是错,还请高手指正. 我在这里web结束,需 ...
- Webservice中使用Session、Application
原文:Webservice中使用Session.Application 在Asp.Net 2.0里,已经能够在WebMethod里使用 Session . Application 这种服务器变量了.一 ...
- Python_生成測试数据
本文出自:http://blog.csdn.net/svitter 生成1~10的随机数1000个: import random fp = open("test", 'w'); f ...
- libvlc media player in C# (part 2)
原文 http://www.helyar.net/2009/libvlc-media-player-in-c-part-2/ I gave some simplified VLC media play ...
- jquery中的一点工作小记
在做一个页面的时候,网页中由许多块相同的地方 ,例如页面中会有多个地方用到TAB 效果,在使用each()遍历以后 不一定会正常显示,这是因为写的html静态页面中只有当前板块中有这个的类,若是用J ...
- ubuntu下的词典的安装
因为从事开发,安装一个词典是很有必要,文中介绍安装openyoudao和stardic两个软件的方法 一.openyoudao的安装 因为是由window转来学ubuntu的,所以总是想安装和wind ...
- Android项目--浅析系统通讯录中的那些方法
系统通讯录,以前的版本虽然过时了,不过有些东西还是可以用. 1.开启系统联系人添加 /** 添加联系人 */ Intent intent = new Intent(Intent.ACTION_INSE ...
- 使用Castle扩展Ibatis.Net,面向接口编程-更优雅的代码
使用Ibatis.Net做项目半年了,甚是喜欢,感觉确实是个简单.轻巧的O/R Mapping框架,特别是将Sql配置在Xml文件中,相当于直接将Dao层抽离了出来. 本文假定读者对Ibatis.Ne ...
- Jetbrains 系列神器
PRODUCTS IntelliJ IDEA ReSharper WebStorm PhpStorm PyCharm RubyMine AppCode YouTrack TeamCity dotTra ...
- glibc-2.19 之 strlen 实现
前几天遇到一个有意思的问题,实现strlen 不考虑线程安全: 下面是我的实现: size_t strlen(const char* s) { const char* p = s; while (*p ...