Axis创建webservice客户端和服务端
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本人声明。否则将追究法律责任。 作者:永恒の_☆ 地址:http://blog.csdn.net/chenghui0317/article/details/9318317
一、Axis的介绍
Web Service是现在最适合实现SOA的技术,而Axis是实现Web Service的一种技术框架(架构)。
二、Axis的准备条件
所需要的jar包:
axis.jar
jaxrpc.jar
saaj.jar
wsdl4j-1.5.1.jar
commons-discovery-0.2.jar
xbean.jar
下载地址:http://download.csdn.net/detail/ch656409110/5747129
三、创建webservice服务端
1、先将jar包放入lib目录
2、在web.xml中配置axis监听器和核心servlet
<!-- axis配置 -->
<listener>
<listener-class>org.apache.axis.transport.http.AxisHTTPSessionListener</listener-class>
</listener>
<servlet>
<display-name>Apache-Axis Servlet</display-name>
<servlet-name>AxisServlet</servlet-name>
<servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class>
</servlet>
<servlet>
<display-name>Axis Admin Servlet</display-name>
<servlet-name>AdminServlet</servlet-name>
<servlet-class>org.apache.axis.transport.http.AdminServlet</servlet-class>
<load-on-startup>100</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>AxisServlet</servlet-name>
<url-pattern>/servlet/AxisServlet</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>AxisServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping> }
3、创建一个xml, 名字叫server-config.wsdd 放在WEB-INF根目录
4、根据配置再创建webservice服务端的实现类
1、定义接口HouseWebService.java
public String getHouseList(String xmlStr);
2、实现该接口HouseWebServiceImpl.java
可以随便返回一些字符串即可。
5、保存,发布项目,启动tomcat
在地址栏输入:http://localhost:8080/house/services/houseWebService?wsdl 即可看到发布的服务端的明细。
如下:
这就表示Axis发布的webservice服务端成功了。
6、通过客户端调用服务端webservice
/**
* 调用webservice路口
* @param endpoint 地址
* @param methodName 调用的方法
* @param xmlStr 传递的xml字符串参数
* @return
*/
public String invoke(String endpoint,String methodName,String xmlStr){
Service service = new Service();
Call call = null;
try {
call = (Call) service.createCall();
} catch (ServiceException e) {
e.printStackTrace();
}
QName qn = new QName(methodName);
call.setOperationName(qn);
call.setTargetEndpointAddress(endpoint);
call.setUseSOAPAction(true);
String result = "";
try {
// 给方法传递参数,并且调用方法
result = (String) call.invoke(new Object[] { xmlStr });
} catch (RemoteException e) {
e.printStackTrace();
}
System.out.println("result is " + result);
return result;
} public List<House> getHouseList() {
String xmlStr = "<?xml version=\"0\" encoding=\"UTF-8\"?>"
+ " <house>"
+ " <condition>"
+ " <title>便宜</title>"
+ " <price></price>"
+ " <streetname></streetname>"
+ " <typename></typename>"
+ " <floorage>100</floorage>"
+ " <pageno></pageno>"
+ " <pagesize></pagesize>"
+ " </condition>"
+ " </house>";
String result = invoke("http://localhost:8080/house/services/houseWebService","getHouseList",xmlStr);
}
在这里面传递的xml规范由 服务端自己规范好了,然后去解析、获取参数,执行相应的操作,返回想要的结果给调用的客户端。。
如果用axis调用axis的服务端使用使用起来很方便,但是调用cxf的服务端容易出错。
比如:如果在调用的时候没有指定命名空间,就不行。
在调用的时候不指定调用的参数以及返回的结果类型,就收不到客户端发送的参数。可以看看:http://blog.csdn.net/ch656409110/article/details/9310789
Axis创建webservice客户端和服务端的更多相关文章
- 13.Axis创建webservice客户端和服务端
转自:https://blog.csdn.net/chenghui0317/article/details/9318317 一.Axis的介绍 Web Service是现在最适合实现SOA的技术,而A ...
- CXF创建webservice客户端和服务端
转 一.CXF的介绍 Apache CXF是一个开源的WebService框架,CXF大大简化了Webservice的创建,同时它继承了XFire的传统,一样可以和spring天然的进行无缝的集成.C ...
- 【转】SoapUI5.0创建WebService接口模拟服务端
原文:http://blog.csdn.net/a19881029/article/details/26348627 使用SoapUI创建WebService接口模拟服务端需要接口描述文件 MathU ...
- SoapUI5.0创建WebService接口模拟服务端(转)
转载自:https://blog.csdn.net/a19881029/article/details/26348627 使用SoapUI创建WebService接口模拟服务端需要接口描述文件 Mat ...
- 【JMeter4.0学习(三)】之SoapUI创建WebService接口模拟服务端以及JMeter对SOAP协议性能测试脚本开发
目录: 创建WebService接口模拟服务端 下载SoapUI 新建MathUtil.wsdl文件 创建一个SOAP项目 接口模拟服务端配置以及启动 JMeter对SOAP协议性能测试脚本开发 [阐 ...
- 使用Axis2编写webservice客户端,服务端
1.编写客户端 Axis2开发WebService客户端 的3种方式 [参考帖子] http://blog.csdn.net/wangjinwei6912/article/details/851259 ...
- 使用GSoap开发WebService客户端与服务端
Gsoap 编译工具提供了一个SOAP/XML 关于C/C++ 语言的实现, 从而让C/C++语言开发web服务或客户端程序的工作变得轻松了很多. 用gsoap开发web service的大致思路 我 ...
- WebService技术,服务端发布到Tomcat(使用Servlet发布),客户端使用axis2实现(二)
还是在WebService技术,服务端and客户端JDK-wsimport工具(一)的基础上实现.新建一个包:com.aixs2client.目录结构如下: 一.服务端: 1.还是使用com.webs ...
- Delphi XE5通过WebService开发Web服务端和手机客户端
Delphi XE5通过WebService开发Web服务端和手机客户端介绍 我们开发一个三层的android程序 建立一个webservices stand-alone vcl applicati ...
随机推荐
- MySQL创建视图和Union all的使用案例
CREATE VIEW netcheck.cpu_mp AS (SELECT cpu.ID AS id, cpu.chanel_name AS chanel_name, cpu.first ...
- android开发要避免的那些坑
SparseArray 目前有很多地方从性能优化方说使用SparseArray来替换hashMap,来节省内存,提高性能. Linkify.addLinks() 这个类可以更方便的为文本添加超链接. ...
- EBS DBA指南笔记(三)
第五章 patching patch的作用:解决应用代码的问题:安装新的特征:更新technology stack组件.打patch不是一个简单的过程,但我们也没必要深究里面每个细节. EBS的p ...
- 修改GDAL库支持RPC像方改正模型
最近在做基于RPC的像方改正模型,方便对数据进行测试,修改了GDAL库中的RPC纠正模型,使之可以支持RPC像方改正参数. 下面是RPC模型的公式,rn,cn为归一化之后的图像行列号坐标,PLH为归一 ...
- GDAL书籍
GDAL的书籍经过快两年的编写修改,终于出版发行了,有需要的同学可以到下面的网址进行购买. 购买地址: 亚马逊:http://www.amazon.cn/GDAL%E6%BA%90%E7%A0%81% ...
- 十大常见Java String问题
翻译人员: 铁锚 翻译时间: 2013年11月7日 原文链接: Top 10 questions of Java Strings 本文介绍Java中关于String最常见的10个问题: 1. 字符串比 ...
- javascript语法之String对象
学习String类就是学习它的一些方法,主要用到方法全部罗列出来.如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transition ...
- 高通 MSM8K bootloader 之四: ramdump
前面说过高通平台,系统crash发生时,抓取crash ramdump非常重要,否则很难定位crash原因. 平台默认抓取ramdump的方法都有很强的局限性,如下: 1.PC端工具QPST提供的 M ...
- Python的time(时间戳与时间字符串互相转化)
strptime("string format")字符串如"20130512000000"格式的 输入处理函数 localtime(float a)时间戳的输入 ...
- 基于VB中WINSOCK控件的网上象棋系统的实现
本文发表在<微型机与应用>杂志2001年第3期. 基于VB中WINSOCK控件的网上象棋系统的实现 马根峰1 , 孙艳2 , 王平1 (1.重庆邮电学院自动化学院,重庆,40006 ...