webservice 入门笔记五handler处理信息

Handler非常像Servlet技术中的Filter。我们知道,在Servlet中,当一个HTTP到达服务端时,往往要经过多个Filter对请求进行过滤,然后才到达提供服务的Servlet,这些Filter的功能往往是对请求进行统一编码,对用户进行认证,把用户的访问写入系统日志等。相应的,Web服务中的Handler通常也提供以下的功能:

  • 对客户端进行认证、授权;
  • 把用户的访问写入系统日志;
  • 对请求的SOAP消息进行加密,解密;
  • 为Web Services对象做缓存。

新建一个handler

package com.zhutulang.handler;
 
import java.util.Set;
 
import javax.xml.namespace.QName;
import javax.xml.ws.handler.MessageContext;
import javax.xml.ws.handler.soap.SOAPHandler;
importjavax.xml.ws.handler.soap.SOAPMessageContext;
 
public class HeaderHandler implementsSOAPHandler<SOAPMessageContext> {
 
         @Override
         publicboolean handleMessage(SOAPMessageContext context) {
       System.out.println("handler");
                   returnfalse;
         }
 
         @Override
         publicboolean handleFault(SOAPMessageContext context) {
                   System.out.println("handleFault");
                   returnfalse;
         }
 
         @Override
         publicvoid close(MessageContext context) {
                   //TODO Auto-generated method stub
                  
         }
 
         @Override
         publicSet<QName> getHeaders() {
                   //TODO Auto-generated method stub
                   returnnull;
         }
 
}


 

 

在classpath下新建一个xml文件 handler-chain.xml

<?xml version="1.0"encoding="UTF-8" standalone="yes"?>
<javaee:handler-chains
     xmlns:javaee="http://java.sun.com/xml/ns/javaee"
     xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <javaee:handler-chain>
    <javaee:handler>
      <javaee:handler-class>com.zhutulang.handler.HeaderHandler</javaee:handler-class>
    </javaee:handler>
  </javaee:handler-chain>
</javaee:handler-chains>


 

其中,handler-class 是hanler全路径名。

然后在接口实现类上配置:@HandlerChain(file="handler-chain.xml")

 

重启服务后,运行test4方法。看到控制台打印出handler ,说明我们配置的handler生效了。

 

 相关的代码下载:http://download.csdn.net/detail/zhutulang/9487929

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值