cxf通过wsdl2java生成客户端调用webservice时,如果服务器端需要通过用户名和密码验证,则客户端必须传递验证所必须的用户名和密码,刚开始想通过url传递用户名和密码,于是在wsdl文件中直接在<soap:address location 标记中添加加入用户名和密码,但是webservice接收不到参数,此种方法行不通。后来在接口方法调用前用BindingProvider 得到RequestContext,在其中设置了请求需要的用户名和密码,接口顺利通过验证,执行成功,具体代码如下:

/**
* 根据给定的参数执行接口程序
*
* @param request
* @return
*/
public ZPILOT01SSOCMMIF001CONResponse executeService(
ZPILOT01SSOCMMIF001CON request) throws Exception {

// 得到本地服务类
MIZPILOT01SSOCMMIF001CONOutSynService service = new MIZPILOT01SSOCMMIF001CONOutSynService();

// 得到接口的代理
MIZPILOT01SSOCMMIF001CONOutSyn stub = service
.getMIZPILOT01SSOCMMIF001CONOutSynPort();

// 设置访问接口服务器的用户名和密码
BindingProvider bp = (BindingProvider) stub;
Map<String, Object> context = bp.getRequestContext();
context.put(BindingProvider.USERNAME_PROPERTY, XI_USER_NAME);
context.put(BindingProvider.PASSWORD_PROPERTY, XI_PASSWORD);

// 执行接口
ZPILOT01SSOCMMIF001CONResponse response = stub
.miZPILOT01SSOCMMIF001CONOutSyn(request);

// 返回响应
return response;
}

最新文章

  1. SQL,Linq,Lambda之间的转换练习
  2. Vue.js双向绑定的实现原理和模板引擎实现原理(##########################################)
  3. python 字符串相加
  4. 第二百一十天 how can I 坚持
  5. [LeetCode] Ugly Number II (A New Question Added Today)
  6. TcxVerticalGrid demo
  7. Delphi事件的广播 good
  8. qml 中 使用 shader
  9. (4)activiti之uel表达式
  10. 从Thread,ThreadPool,Task, 到async await 的基本使用方法解读
  11. 深入浅出多线程——ReentrantLock (二)
  12. Python_sniffer(网络嗅探器)
  13. 三个猜数字游戏代码(Python)
  14. Java核心技术及面试指南 键值对方面的面试题总结以及答案
  15. 【Spring Security】七、RememberMe配置
  16. POJ2270&amp;&amp;Hdu1808 Halloween treats 2017-06-29 14:29 40人阅读 评论(0) 收藏
  17. Spring-Task思维导图
  18. RabbitMQ文档翻译——Hello World!(上)
  19. codeforces水题100道 第十五题 Codeforces Round #262 (Div. 2) A. Vasya and Socks (brute force)
  20. P2245 星际导航

热门文章

  1. 在CentOS中安装NodeJS
  2. 代码提交时让svn忽略classpath、target、.project等
  3. maven核心,pom.xml详解(转)
  4. Java JDBC基础学习小结
  5. cf之路,1,Codeforces Round #345 (Div. 2)
  6. SSH----小小项目的小小总结
  7. HOLOLENS不适合加天空盒
  8. flex引起height:100%失效
  9. SmallPtAMP: C++ AMP implementation of SmallPt / SmallPtGPU
  10. JavaScript从数组中删除指定值元素的方法