Web servicer调用异常org.apache.cxf.binding.soap.SoapFault * are not understood.

在调用WebService服务端时出现Caused by: org.apache.cxf.binding.soap.SoapFault: 
MustUnderstand headers: [{http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd}Security] are not understood.异常信息,调用方式如下:

客户端代码:

...
JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
    // 注册WebService接口
factory.setServiceClass(IRemoteAccessor.class);
// 设置WebService地址 
factory.setAddress(webServiceUrl);
//***注入拦截器,用于加密安全验证信息************************
Map<String, Object> outProps = new HashMap<String, Object>();    
outProps.put(WSHandlerConstants.ACTION, WSHandlerConstants.USERNAME_TOKEN);    
outProps.put(WSHandlerConstants.USER, userName);   
outProps.put(WSHandlerConstants.PASSWORD_TYPE, WSConstants.PW_TEXT);
outProps.put(WSHandlerConstants.PW_CALLBACK_CLASS,  WsClinetAuthHandler.class.getName());    
ArrayList<SoapInterceptor> list = new ArrayList<SoapInterceptor>();    
list.add(new SAAJOutInterceptor());    
list.add(new WSS4JOutInterceptor(outProps));    
factory.getOutInterceptors().addAll(list);
IRemoteAccessor remoteAccessor = (IRemoteAccessor)factory.create();
Client proxy = ClientProxy.getClient(remoteAccessor);
   HTTPConduit conduit = (HTTPConduit)proxy.getConduit();
   TLSClientParameters tlsParams = conduit.getTlsClientParameters();
   if (tlsParams == null){
    tlsParams = new TLSClientParameters();
   }
   tlsParams.setTrustManagers(getTrustManagers(keyStorePath,keyStorePassword,keyStoreType));
   tlsParams.setDisableCNCheck(true);
   tlsParams.setSecureSocketProtocol("SSL");
   conduit.setTlsClientParameters(tlsParams);
   String outXML = "";
   outXML = remoteAccessor.invoke(inXml);
   return outXML;

通过检查发现问题是WebService服务端没有配置用户身份认证导致的,将client代码中的用户身份认证去掉接口调用OK

  • 6
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IMK7

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值