服务端:

    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;
}

}

转载于:https://www.cnblogs.com/ly-china/p/5444516.html

webservice拦截器 查看消息包(soap)相关推荐

  1. kafka 自定义Interceptor(通过拦截器对消息进行定制化处理)

    文章目录 1. 说明 1.1 configure(configs) 1.2 onSend(ProducerRecord) 1.3 onAcknowledgement(RecordMetadata, E ...

  2. SpringBoot中文件下载、拦截器、war包部署、jar包部署

    3. SpringBoot中文件下载 将可以被下载资源放在磁盘的 D:\springbootcodes\springboot_day6\download 路径 这里我们使用jsp开发 引入依赖使tom ...

  3. Java笔记-springframework.ws中拦截器的使用(SOAP)

    这里首先说下客户端拦截器. 这里要实现的效果 这里的打印都是在拦截器中打印的! 下面要介绍如下的东西,如何在拦截器中打印这些东西,其次是在拦截器中添加一个head 对应的Maven <?xml ...

  4. Spring Boot 自动加载指定包下的拦截器

    Spring Boot 在我们需要对程序添加拦截器需要使用 WebMvcConfigurerAdapter 中的 addInterceptors方法去注册拦截器,这样我们如果在程序里面有多个拦截或者我 ...

  5. Struts2拦截器实现异常处理机制

    http://bbs.itcast.cn/thread-10364-1-1.html Struts2拦截器实现异常处理机制   在j2ee项目中,系统内部难免会出现一些异常,如果把异常放任不管直接打印 ...

  6. Struts2拦截器的使用

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

  7. Stust2的拦截器的运行流程及使用方法、注意事项

    拦截器是Strust2的一大特色:拦截器是对用户请求(.do,.action或者其他)的一种审查和额外的处理.拦截器与程序核心代码分离,实现了AOP面向切面编程的技术原理:而且帮助程序完成用户请求的安 ...

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

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

  9. springMVC使用拦截器针对控制器方法做预处理、后处理、资源清理

    简单了解一下过滤器和拦截器: 过滤器是servlet规范中的一部分,任何java web工程都可以使用:在url-pattern中配置/*之后,可以对所有要访问的资源拦截.拦截器是springMVC框 ...

最新文章

  1. 【Cocos2d-X开发笔记】第一期 Cocos2d-X的环境搭建
  2. linux 改成utc时间_C++下四种常用的程序运行时间的计时方法总结
  3. sql 一个字段在另外一个表没出现_都9012年啦,不懂得这些SQL语句优化,你是要吃大亏的...
  4. 绑定dictionary 给定关键字不再字典中_对字典嵌套的理解及二级下拉菜单的制作...
  5. C语言新思路跟未来教育哪个好,计算机等级考试用什么书好 未来教育的书怎么样?貌似网上评价很高...
  6. JavaScript制作页面跳转效果
  7. 4大MQ消息队列的比较
  8. 计算机一级exc除法函数,excel除法函数 excel除法如何表示
  9. VS中给qt按钮添加图标
  10. Python:Pygame的图形接口
  11. 10段世界最美的英语美文
  12. python代码图片头像_python图像处理-个性化头像
  13. 解决!只有IE64位浏览器能上网,其他软件都上不了网
  14. TomCat报404错误是什么原因该怎么解决
  15. Windows 10 C盘所有软件,安装到D盘
  16. 软件测试学习 之 Python 两种执行方式——python和python -m 的区别
  17. 认识Linux文件系统inode和查看inode相关信息
  18. Git进阶(五):git 分支管理策略
  19. PHP开发的微信公众平台消息接口具体流程
  20. C++高性能服务框架revolver:RUDP(可靠UDP)算法详解

热门文章

  1. //过360云查杀的代码
  2. stm32流水灯程序设计实现
  3. 20150420-20150424 一周工作问题及解决【共享文件的获取、前后台乱码问题解决等】
  4. sat数学可以用计算机吗,SAT数学考试能使用计算器吗?
  5. 微信小程序和uniapp高频面试题
  6. 【转载】CSS 选择器参考手册
  7. IT小天个人技术博客
  8. Ventoy-一种更便捷的OS启动盘制作方法
  9. 【年底超顺SCI】4区计算机科学类SCI,仅剩10篇版面
  10. ssd测试软件cy,SSD检测几个小细节