原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本人声明。否则将追究法律责任。 作者:永恒の_☆ 地址: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客户端和服务端的更多相关文章

  1. 13.Axis创建webservice客户端和服务端

    转自:https://blog.csdn.net/chenghui0317/article/details/9318317 一.Axis的介绍 Web Service是现在最适合实现SOA的技术,而A ...

  2. CXF创建webservice客户端和服务端

    转 一.CXF的介绍 Apache CXF是一个开源的WebService框架,CXF大大简化了Webservice的创建,同时它继承了XFire的传统,一样可以和spring天然的进行无缝的集成.C ...

  3. 【转】SoapUI5.0创建WebService接口模拟服务端

    原文:http://blog.csdn.net/a19881029/article/details/26348627 使用SoapUI创建WebService接口模拟服务端需要接口描述文件 MathU ...

  4. SoapUI5.0创建WebService接口模拟服务端(转)

    转载自:https://blog.csdn.net/a19881029/article/details/26348627 使用SoapUI创建WebService接口模拟服务端需要接口描述文件 Mat ...

  5. 【JMeter4.0学习(三)】之SoapUI创建WebService接口模拟服务端以及JMeter对SOAP协议性能测试脚本开发

    目录: 创建WebService接口模拟服务端 下载SoapUI 新建MathUtil.wsdl文件 创建一个SOAP项目 接口模拟服务端配置以及启动 JMeter对SOAP协议性能测试脚本开发 [阐 ...

  6. 使用Axis2编写webservice客户端,服务端

    1.编写客户端 Axis2开发WebService客户端 的3种方式 [参考帖子] http://blog.csdn.net/wangjinwei6912/article/details/851259 ...

  7. 使用GSoap开发WebService客户端与服务端

    Gsoap 编译工具提供了一个SOAP/XML 关于C/C++ 语言的实现, 从而让C/C++语言开发web服务或客户端程序的工作变得轻松了很多. 用gsoap开发web service的大致思路 我 ...

  8. WebService技术,服务端发布到Tomcat(使用Servlet发布),客户端使用axis2实现(二)

    还是在WebService技术,服务端and客户端JDK-wsimport工具(一)的基础上实现.新建一个包:com.aixs2client.目录结构如下: 一.服务端: 1.还是使用com.webs ...

  9. Delphi XE5通过WebService开发Web服务端和手机客户端

    Delphi XE5通过WebService开发Web服务端和手机客户端介绍 我们开发一个三层的android程序 建立一个webservices  stand-alone vcl applicati ...

随机推荐

  1. 【一天一道LeetCode】#344. Reverse String

    一天一道LeetCode 本系列文章已全部上传至我的github,地址:ZeeCoder's Github 欢迎大家关注我的新浪微博,我的新浪微博 欢迎转载,转载请注明出处 (一)题目 Write a ...

  2. ProgressBar的indeterminateDrawable属性在安卓6.0上的问题

    通过indeterminateDrawable属性去自定义ProgressBar方法: <ProgressBar android:id="@+id/pb" android:l ...

  3. MVPHelper更新日志 --- 新增常规分包模式

    MVPHelper是一款可以自动生成MVP接口以及实现类的android studio插件,彻底解放双手! MVPHelper更新版本啦. 由于之前只支持contract模式,不是很符合大众口味 所以 ...

  4. 【一天一道LeetCode】#120. Triangle

    一天一道LeetCode 本系列文章已全部上传至我的github,地址:ZeeCoder's Github 欢迎大家关注我的新浪微博,我的新浪微博 欢迎转载,转载请注明出处 (一)题目 Given a ...

  5. Win7/Win8/Win10下安装Ubuntu14.04双系统 以及常见问题

    整理自网络. 1. 制作镜像 将ubantu镜像刻录到优盘(我使用UltraISO刻录,镜像下载地址:链接: http://pan.baidu.com/s/1bndbcGv 密码: qsmb) 2. ...

  6. 【翻译】在Ext JS 6通用应用程序中使用既共享又特定于视图的代码

    原文:Using Both Shared and View-Specific Code in an Ext JS 6 Universal App 在本文,在展示如何编写Ext JS 6通用应用程序代码 ...

  7. Mybatis插件原理分析(二)

    在上一篇中Mybatis插件原理分析(一)中我们主要介绍了一下Mybatis插件相关的几个类的源码,并对源码进行了一些解释,接下来我们通过一个简单的插件实现来对Mybatis插件的运行流程进行分析. ...

  8. Java 8新特性探究(二)类型注解和重复注解

    本文将介绍java 8的第二个特性:类型注解. 注解大家都知道,从java5开始加入这一特性,发展到现在已然是遍地开花,在很多框架中得到了广泛的使用,用来简化程序中的配置.那充满争议的类型注解究竟是什 ...

  9. 对“传统BIOS”与“EFI/UEFI BIOS”的基本认识

    硬盘(MBR磁盘)分区基本认识+Windows启动原理 大家常会看到硬盘分区中这样的几种说法:系统分区.启动分区.活动分区.主分区.拓展分区.逻辑分区,MBR.PBR.DPT.主引导扇区等.尤其是看到 ...

  10. [WinForm]dataGridView自定动态设定序号列框

    你可以在数据绑定或者行数有很大变化时测量一下DataGridView最大行数的行数的宽度然后在绘制代码如下 SolidBrush solidBrush; StringFormat stringForm ...