加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

webservice 入门笔记五handler处理信息

发布时间:2020-12-16 22:18:34 所属栏目:安全 来源:网络整理
导读:Handler非常像Servlet技术中的Filter。我们知道,在Servlet中,当一个HTTP到达服务端时,往往要经过多个Filter对请求进行过滤,然后才到达提供服务的Servlet,这些Filter的功能往往是对请求进行统一编码,对用户进行认证,把用户的访问写入系统日志等。相应

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读