服务端:

    1.获取EndpointImpl对象

    2.调用EndpointImpl对象中的方法获取In拦截器
    3.调用EndpointImpl对象中的方法获取out拦截器

    4.添加自己的In拦截器与Out拦截器

      LogginInInterceptor:查看收到的消息包

      LoggOutInterceptor:查看发出去的消息包

客户端:

    需要导入cxf的7个jar包:

    1.获取client对象

      Client client=ClientProxy.getClient("ws服务组件代理对象") ---ws服务组件 就是  new 服务接口().getXxxPort();  就是服务端服务接口的实现类

    2.调用client对象中的方法获取In拦截器
    3.调用client对象中的方法获取out拦截器

    4.添加自己的In拦截器与Out拦截器

      LogginInInterceptor:查看收到的消息包

      LoggOutInterceptor:查看发出去的消息包

------------------------添加权限拦截器-----------------------------------

1.在soap包中添加Header元素,携带鉴定权限的数据

<Header>

  <auth>

    <auth_id>账号</auth_id>

    <auth_pwd>密码</auth_pwd>

  </auth>

</Header>

2.客户端------在发送soap包之前修改header头元素需要添加out拦截器

3.服务端------添加in拦截器解析soap包header头元素

4.自定义拦截器--需要继承AbstractPhaseInterceprot;

----------------------------自定义拦截器案例----------------------------

public class HeaderInterceptor extends AbstractPhaseInterceptor<SoapMessage> {
private String authId;
private String pwd;

public HeaderInterceptor(String authId, String pwd) {
/** 在发送soap包之前该拦截器起作用 */
super(Phase.PREPARE_SEND);
this.authId = authId;
this.pwd = pwd;
}

@Override
public void handleMessage(SoapMessage soapMessage) throws Fault {

/**
* <auth>
<auth_id>admin</auth_id>
<auth_pwd>888888</auth_id>
</auth>
*/
// 创建Document
Document doc = DOMUtils.createDocument();
// 创建Element
Element authEle = doc.createElement("auth");
Element idEle = doc.createElement("auth_id");
// 添加文本
idEle.setTextContent(authId);
Element pwdEle = doc.createElement("auth_pwd");
// 添加文本
pwdEle.setTextContent(pwd);

// 追加元素
authEle.appendChild(idEle);
authEle.appendChild(pwdEle);

// 创建Header头
Header header = new Header(new QName("it"), authEle);

// 获取所有的header头, 添加header头
soapMessage.getHeaders().add(header);

}

public String getAuthId() {
return authId;
}

public void setAuthId(String authId) {
this.authId = authId;
}

public String getPwd() {
return pwd;
}

public void setPwd(String pwd) {
this.pwd = pwd;
}

}

webservice拦截器 查看消息包(soap)的更多相关文章

  1. 5.webService拦截器

    CXF为什么要设计拦截器? 为了在webservice请求过程中,能动态操作请求和响应数据, CXF设计了拦截器. 拦截器分类 1.按所处的位置分:服务器端拦截器,客户端拦截器 2.按消息的方向分:入 ...

  2. 7.添加基于Spring的WebService拦截器

    客户端拦截器: public class AccountInterceptor extends AbstractPhaseInterceptor<SoapMessage>{ private ...

  3. 【WebService】WebService之CXF的拦截器(五)

    CXF拦截器介绍 CXF拦截器是功能的主要实现单元,也是主要的扩展点,可以在不对核心模块进行修改的情况下,动态添加功能.当服务被调用时,会经过多个拦截器链(Interceptor Chain)处理,拦 ...

  4. 使用CXF为webservice添加拦截器

      拦截器分为Service端和Client端 拦截器是在发送soap消息包的某一个时机拦截soap消息包,对soap消息包的数据进行分析或处理.分为CXF自带的拦截器和自定义的拦截器 1.Servi ...

  5. Struts 2 之拦截器

    拦截器概述 Struts2拦截器是在访问某个Action或Action的某个方法,字段之前或之后实施拦截,并且Struts2拦截器是可插拔的,拦截器是AOP(Aspect Oriented Progr ...

  6. struts2 自定义异常拦截器配log4j

    log4j.rootLogger = debug,stdout,F log4j.appender.stdout = org.apache.log4j.ConsoleAppender log4j.app ...

  7. Struts2拦截器的使用 (详解)

    Struts2拦截器的使用 (详解) 如何使用struts2拦截器,或者自定义拦截器.特别注意,在使用拦截器的时候,在Action里面必须最后一定要引用struts2自带的拦截器缺省堆栈default ...

  8. struts2:拦截器

    拦截器(Interceptor)是Struts 2的核心组件,Struts 2框架的大部分功能都是通过拦截器来完成的,例如数据校验,国际化,文件上传和下载等.为了实现这些功能,Struts 2框架提供 ...

  9. struts拦截器的知识

    如何使用struts2拦截器,或者自定义拦截器.特别注意,在使用拦截器的时候,在Action里面必须最后一定要引用struts2自带的拦截器缺省堆栈defaultStack,如下(这里我是引用了str ...

随机推荐

  1. 工欲善其事,必先利其器 之 WPF篇: 随着开发轨迹来看高效WPF开发的工具和技巧

    之前一篇<工欲善其事,必先利其器.VS2013全攻略(安装,技巧,快捷键,插件)!> 看到很多朋友回复和支持,非常感谢,尤其是一些拍砖的喷油,感谢你们的批评,受益良多. 我第一份工作便是W ...

  2. linux 命令02

    cp 文件 路径 文件拷贝 cp -a 目录 路径 拷贝目录 cd .. 回到上一级目录 mv 需要移动目录(文件) 移动目的地 移动目录(文件) pwd 查看用户当前所在路径 ls 查看目录列表 m ...

  3. Windows Phone 8.1 开发技术概览 (Universal APP)

    前一阵真的比较懒 WP8.1 已经出来这么长时间了现在才更新BLOG让大家久等了,今天我先为大家介绍下 WP 8.1的开发框架,什么是微软所推崇的 Universal APP,以及我们要开发 Univ ...

  4. 浅谈JavaScript中的定时器

    引言 使用setTimeout()和setInterval()创建的定时器可以实现很多有意思的功能.很多人认为定时器是一个单独的线程(之前我也是),但是JavaScript是运行在单线程环境中的,而定 ...

  5. Java [leetcode 21]Merge Two Sorted Lists

    题目描述: Merge two sorted linked lists and return it as a new list. The new list should be made by spli ...

  6. OpenGL ES 2.0 纹理映射

    纹理坐标用符点数表示,范围一般从0.0到1.0,在纹理坐标系中.纹理坐标系原点在左上侧,向右为S轴,向下为T轴.两个轴的取值范围都是0.0-1.0. 纹理映射 纹理映射:把一幅纹理图应用到相应的几何图 ...

  7. Ubuntu 12.04中文输入法的安装(转)

    Ubuntu上的输入法主要有小小输入平台(支持拼音/二笔/五笔等),Fcitx,Ibus,Scim等.其中Scim和Ibus是输入法框架. 在Ubuntu的中文系统中自带了中文输入法,通过Ctrl+S ...

  8. 【Egret】在WebStorm里使用Egret Engine 的注意点

    1.开启代码提示 2.修改egret code后,自动编译新egret code 按照下图进行设置: ①打开"File-settings" ② ③ (PS:webstorm打开目录 ...

  9. this指向和apply,call,bind三者的区别

    一.前言 this指向,apply,call,bind的区别是一个经典的面试问题,同时在项目中会经常使用到的原生的js方法.同时也是ES5中的众多坑的一个.ES6中可能会极大的避免了this产生的错误 ...

  10. Java中菜单的实现以及画实线与画虚线之间的自由转化

    1.Java画线 1 import java.awt.Color; import java.awt.Container; import java.awt.Graphics; import java.a ...