cxf 调用 webservice服务时传递 服务器验证需要的用户名密码
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;
}
最新文章
- SQL,Linq,Lambda之间的转换练习
- Vue.js双向绑定的实现原理和模板引擎实现原理(##########################################)
- python 字符串相加
- 第二百一十天 how can I 坚持
- [LeetCode] Ugly Number II (A New Question Added Today)
- TcxVerticalGrid demo
- Delphi事件的广播 good
- qml 中 使用 shader
- (4)activiti之uel表达式
- 从Thread,ThreadPool,Task, 到async await 的基本使用方法解读
- 深入浅出多线程——ReentrantLock (二)
- Python_sniffer(网络嗅探器)
- 三个猜数字游戏代码(Python)
- Java核心技术及面试指南 键值对方面的面试题总结以及答案
- 【Spring Security】七、RememberMe配置
- POJ2270&;&;Hdu1808 Halloween treats 2017-06-29 14:29 40人阅读 评论(0) 收藏
- Spring-Task思维导图
- RabbitMQ文档翻译——Hello World!(上)
- codeforces水题100道 第十五题 Codeforces Round #262 (Div. 2) A. Vasya and Socks (brute force)
- P2245 星际导航
热门文章
- 在CentOS中安装NodeJS
- 代码提交时让svn忽略classpath、target、.project等
- maven核心,pom.xml详解(转)
- Java JDBC基础学习小结
- cf之路,1,Codeforces Round #345 (Div. 2)
- SSH----小小项目的小小总结
- HOLOLENS不适合加天空盒
- flex引起height:100%失效
- SmallPtAMP: C++ AMP implementation of SmallPt / SmallPtGPU
- JavaScript从数组中删除指定值元素的方法