1.编写服务器端代码:
package pack.java.web.service.handler;
import org.apache.axis.AxisFault;
import org.apache.axis.MessageContext;
import org.apache.axis.handlers.BasicHandler;
/***
* 服务器端代码;
* 继承basicHandler 抽象类,并且实现invoke方法;
* @author Administrator
*
*/
public class MyHandler extends BasicHandler{
//版本号;
private static final long serialVersionUID = 1453729851511344780L;
private static long COUNT =0L;
private int requestCount = 0;
//请求,调用;
public void invoke(MessageContext arg0) throws AxisFault {
// TODO Auto-generated method stub
requestCount++;
COUNT++;
String status = (String)this.getOption("status");
System.out.println("My Handler's status is:"+status+",count="+COUNT+",requestCount="+this.requestCount);
}
}
2.编写myHandler.dess文件.
<deployment xmlns="http://xml.apache.org/axis/wsdd/"
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<handler name="MyHandler" type="java:pack.java.web.service.handler.MyHandler">
<parameter name="status" value="success" />
</handler>
<service name="MyHandlerWSDD" provider="java:RPC">
<!-- Handler配置之前处理 -->
<requestFlow>
<handler type="MyHandler" />
</requestFlow>
<!-- 服务器的包和类,方法,范围范围配置. -->
<parameter name="className" value="pack.java.web.service.WebServiceWSDD" />
<parameter name="allowedMethods" value="*"/>
<parameter name="scope" value="request"/>
<!-- 通过 <requestFlow> 这个标签,引用到 WebServiceWSDD中,来处理.-->
<requestFlow>
<handler type="MyHandler"/>
</requestFlow>
</service>
</deployment>
3.拷贝myHandler.wsdd文件到Tomcat目录下的axis的Web-INF中,
4.发布web service.
F:\apache-tomcat-6.0.20\webapps\axis\WEB-INF>java -Djava.ext.dirs=lib org.apache.axis.client.AdminClient -l http://localhost:9999/axis/services/MyHandlerWSDD myHandler.wsdd
发布结果:
Processing file myHandler.wsdd
<Admin>Done processing</Admin>
5.在浏览器中输入:获得url.
http://localhost:9999/axis/services/MyHandlerWSDD
浏览器中显示结果:
MyHandlerWSDD
Hi there, this is an AXIS service!
Perhaps there will be a form for invoking the service here...
5.编写客户端代码,
package pack.java.web.service.client.handler;
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;
/***
* 客户端;调用服务器端的方法;
* @author Administrator
*
*/
public class HandlerClientTest {
/**
* 测试主方法;
* @param args
*/
public static void main(String[]args){
String url="http://localhost:9999/axis/services/MyHandlerWSDD";
Service service =new Service();
try {
Call call=(Call) service.createCall();
call.setTargetEndpointAddress(url);
call.setOperationName(new QName(url,"hello"));
try {
String result=(String) call.invoke(new Object[]{"Peng Xiao Ting ",519});
System.out.println(result);
} catch (RemoteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (ServiceException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
调用hello方法时,在控制台得出的结果:
Peng Xiao Ting 520。
服务器端返回的结果:
- Unable to find config file. Creating new servlet engine config file: /WEB-INF/server-config.wsdd
My Handler's status is:success,count=1,requestCount=1
this is my hello method.
a=Peng Xiao Ting
b=520
result=520
My Handler's status is:success,count=2,requestCount=2
this is my hello method.
a=Peng Xiao Ting
b=520
result=520
My Handler's status is:success,count=3,requestCount=3
this is my hello method.
a=Peng Xiao Ting
b=519
result=519
分享到:
相关推荐
在Android开发中,调用Web服务是常见的需求,特别是与后端服务器进行数据交互时。本资源"Android高级应用源码-Android调用Webservice.zip...通过学习和实践,开发者可以掌握在Android应用中集成Web Service的完整流程。
XFire是一个高级的Web Service框架,与Axis2并列,提供了一种简洁的API来支持Web Service的各种标准协议,包括JSR181(Web服务注解)、WSDL2.0(Web服务描述语言)、JAXB2(Java XML绑定)以及WS-Security(Web服务...
【Android高级应用源码——基于Web服务的机票查询系统实现】 在移动开发领域,Android作为全球最广泛使用的操作系统之一,其应用开发技术日新月异。本源码库主要涉及的是一个高级Android应用实例——机票查询系统,...
3. **AXIS第三课:AXIS高级应用,使用Handler来增强Web服务的功能** Handler是Axis中一个强大的特性,允许开发者插入自定义逻辑在服务处理流程的各个阶段。你可以通过编写Handler来实现如认证、日志记录、消息转换...
在提供的工程中,可能会包含一个客户端应用,它使用SOAP消息与远程Web Service交互。这可能涉及到创建SOAP请求,发送到服务端,然后接收并解析SOAP响应。理解SOAP请求和响应的结构,以及如何在客户端构造和解析它们...
#### 三、AXIS高级应用,使用Handler来增强Web服务的功能 **知识点概述:** 本节介绍如何使用Handler来扩展Axis的Web服务功能,增强其灵活性和安全性。 **知识点详述:** 1. **Handler的定义** - Handler是在...
以上知识点都是高级Android开发者在面试中可能会遇到的,涵盖了Android平台本身以及与其紧密相关的Java Web和J2EE领域。准备面试时,深入理解和熟练运用这些知识,将有助于展示你的专业能力和全面技术视野。
然而,在许多现有的企业级应用中,JAX-WS仍然是核心组件,因为它能提供高度规范化和安全的Web服务交互。 总的来说,JAX-WS是Java平台中用于构建Web服务的重要工具,虽然现代趋势倾向于轻量级的RESTful API,但在...
【Java Webservice Axis2简单开发实例详解】 在Java开发中,Web Service是一种常见的通信机制,用于不同...在实际开发中,了解如何利用Axis2和其他Web Service框架(如JAX-WS)将有助于你构建健壮、高效的企业级应用。
【描述】: "本教程主要讲解如何在myeclipse8.5中安装axis2插件并实现一个简单的Web Service应用。" 【标签】: "axis2" 【正文】: Apache Axis2是Apache软件基金会开发的一个Web Service框架,用于简化Web Service...
在实际应用中,为了提升性能,我们还需要关注以下几点: 1. 数据编码与解码:Netty提供了多种编解码器,如LineBasedFrameDecoder和LengthFieldBasedFrameDecoder,可以根据协议需求选择合适的解码器。 2. 异常处理:...
### WSIT指南-jax-ws指南 ...不仅可以快速构建功能完善的Web服务,还可以轻松地实现安全性和高级功能,如使用Handler进行消息处理。对于那些希望利用现代Web服务技术的开发者来说,这是一种非常有价值的学习资源。
8.4 Web Service访问 8.5 小结 练习 第9章 多媒体应用 9.1 音频与视频的播放 9.1.1 MediaPlayer 9.1.2 SoundPool 9.1.3 VideoView 9.1.4 SurfaceView 9.2 摄像头的使用 9.2.1 摄像头意图Intent ...
在实际应用中,Android客户端通常会通过以下步骤与Web Service交互: 1. **构建请求**:根据业务需求构造HTTP请求,包括URL、HTTP方法(GET、POST等)、请求头和请求体(对于POST、PUT等方法)。 2. **发送请求**...
本指南将详细介绍如何使用 Axis 进行 WebService 开发,包括从基础入门到高级特性的应用。 ### 1. Axis 简单入门 在开始之前,你需要从官方网站下载 Axis 的工程和必要的库文件,例如 `axis-bin-1.4`。解压缩后,...
《移动开发经典丛书·Android 4高级编程(第3版)》是一本深入探讨Android应用开发的专业书籍,针对Android 4版本进行了详细的讲解。这本书旨在帮助开发者掌握Android平台的高级特性,提升他们的开发技能,从而在...
本文将深入探讨“Web服务”(Web Service)及其与CXF框架的整合,包括纯JDK实现、CXF与Spring的集成以及CXF与Ajax的交互。同时,我们还将关注CXF拦截器的使用,并提供相关依赖的jar包。 首先,Web服务是一种基于...
Jetty是一款轻量级、高性能的Java Web服务器和Servlet容器,它被广泛用于开发和部署Web应用程序。在“jetty简单启动web服务第二版”中,我们将深入探讨如何利用Jetty来运行多个Servlet,实现一个微型服务架构。在这...
在Android游戏与应用开发的学习过程中,有一条清晰的路径可以帮助初学者逐步掌握所需技能。以下是一份详尽的学习路线图,涵盖了从基础到高级的各个关键知识点。 首先,要掌握核心Java,这是Android开发的基础。这...
在现代应用中,推荐使用 Spring 的配置方式。Spring 提供了灵活的bean定义,可以在Web环境中轻松管理和注入 ValueListHandler。 **使用 ValueListHandler** 1. **配置适配器和服务** 通过 Spring 配置文件,你...