设为首页收藏本站

SAP Best Business Solution

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1960|回复: 0

cxf 调用 webservice服务时传递 服务器验证需要的用户名密码

[复制链接]

20

主题

21

帖子

164

积分

注册会员

Rank: 2

积分
164
发表于 2016-10-17 22:46:13 | 显示全部楼层 |阅读模式
cxf通过wsdl2java生成客户端调用webservice时,如果服务器端需要通过用户名和密码验证,则客户端必须传递验证所必须的用户名和密码,刚开始想通过url传递用户名和密码,于是在wsdl文件中直接在<soap:address location 标记中添加加入用户名和密码,但是webservice接收不到参数,此种方法行不通。后来在接口方法调用前用BindingProvider 得到RequestContext,在其中设置了请求需要的用户名和密码,接口顺利通过验证,执行成功,具体代码如下:
Java代码  [url=][/url]

  • /**
  •      * 根据给定的参数执行接口程序
  •      *  
  •      * @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;  
  •     }  




回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



QQ|Archiver|手机版|小黑屋|www.sapbbs.com    

GMT+8, 2019-4-23 14:49 , Processed in 3.149603 second(s), 30 queries .

声明:本站严禁任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论!

本站内容由网友原创或转载,如果侵犯了您的合法权益,请及时联系处理!© admin@sapbbs.com

快速回复 返回顶部 返回列表