文档章节

cxf2.7.15-作为webService客户端遇到的问题

johnny_chen
 johnny_chen
发布于 2015/04/17 20:23
字数 730
阅读 2441
收藏 2
点赞 0
评论 0

1、Exception in thread "main" java.lang.NoSuchFieldError: QUALIFIED

    at org.apache.cxf.service.model.SchemaInfo.setSchema(SchemaInfo.java:146)

    at org.apache.cxf.wsdl11.SchemaUtil.extractSchema(SchemaUtil.java:143)

    at org.apache.cxf.wsdl11.SchemaUtil.getSchemas(SchemaUtil.java:73)

    at org.apache.cxf.wsdl11.SchemaUtil.getSchemas(SchemaUtil.java:65)

    at org.apache.cxf.wsdl11.SchemaUtil.getSchemas(SchemaUtil.java:60)

    at org.apache.cxf.wsdl11.WSDLServiceBuilder.getSchemas(WSDLServiceBuilder.java:372)

    at org.apache.cxf.wsdl11.WSDLServiceBuilder.buildServices(WSDLServiceBuilder.java:339)

    at org.apache.cxf.wsdl11.WSDLServiceBuilder.buildServices(WSDLServiceBuilder.java:196)

    at org.apache.cxf.wsdl11.WSDLServiceBuilder.buildServices(WSDLServiceBuilder.java:172)

    at org.apache.cxf.wsdl11.WSDLServiceFactory.create(WSDLServiceFactory.java:125)

    at org.apache.cxf.endpoint.dynamic.DynamicClientFactory.createClient(DynamicClientFactory.java:298)

    at org.apache.cxf.endpoint.dynamic.DynamicClientFactory.createClient(DynamicClientFactory.java:240)

    at org.apache.cxf.endpoint.dynamic.DynamicClientFactory.createClient(DynamicClientFactory.java:233)

    at org.apache.cxf.endpoint.dynamic.DynamicClientFactory.createClient(DynamicClientFactory.java:188)

    at com.ruijie.test.WebServiceTest.testService(WebServiceTest.java:170)

    at com.ruijie.test.WebServiceTest.main(WebServiceTest.java:66)

以上的异常是由于采用的jar包与cxf版本不匹配导致的。原来使用的是XmlSchema-1.4.7.jar,将其删除修改为:xmlschema-core-2.1.0.jar

 

 

2、Exception in thread "main" java.lang.NoSuchMethodError: org.apache.ws.security.util.WSSecurityUtil.decodeAction(Ljava/lang/String;Ljava/util/List;Lorg/apache/ws/security/WSSConfig;)I

    at org.apache.cxf.ws.security.wss4j.WSS4JOutInterceptor$WSS4JOutInterceptorInternal.handleMessage(WSS4JOutInterceptor.java:200)

    at org.apache.cxf.ws.security.wss4j.WSS4JOutInterceptor$WSS4JOutInterceptorInternal.handleMessage(WSS4JOutInterceptor.java:141)

    at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:272)

    at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:572)

    at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:481)

    at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:382)

    at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:335)

    at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:355)

    at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:341)

    at com.ruijie.test.WebServiceTest.testService(WebServiceTest.java:190)

    at com.ruijie.test.WebServiceTest.main(WebServiceTest.java:65)

以上的原因是由于(CXF 2.3.3 needs WSS4J 1.5.x. CXF 2.4.x uses WSS4J 1.6.x.(转)),cxf2.7.15使用的wss4j应该是用从Apache网站下载下来的压缩包里面的版本。

3、Exception in thread "main" org.apache.cxf.binding.soap.SoapFault: An error was discovered processing the <wsse:Security> header
at org.apache.cxf.binding.soap.interceptor.Soap11FaultInInterceptor.unmarshalFault(Soap11FaultInInterceptor.java:84)
at org.apache.cxf.binding.soap.interceptor.Soap11FaultInInterceptor.handleMessage(Soap11FaultInInterceptor.java:51)
at org.apache.cxf.binding.soap.interceptor.Soap11FaultInInterceptor.handleMessage(Soap11FaultInInterceptor.java:40)
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:272)
at org.apache.cxf.interceptor.AbstractFaultChainInitiatorObserver.onMessage(AbstractFaultChainInitiatorObserver.java:113)
at org.apache.cxf.binding.soap.interceptor.CheckFaultInterceptor.handleMessage(CheckFaultInterceptor.java:69)
at org.apache.cxf.binding.soap.interceptor.CheckFaultInterceptor.handleMessage(CheckFaultInterceptor.java:34)
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:272)
at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:849)
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:1626)
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1515)
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1317)
at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56)
at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:632)
at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:272)
at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:572)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:481)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:382)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:335)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:355)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:341)
at com.ruijie.test.WebServiceTest.testService(WebServiceTest.java:180)
at com.ruijie.test.WebServiceTest.main(WebServiceTest.java:65)

以上异常引起的原因,我所调用的服务端加了security控制,在使用client.invoke()之前,应该进行安全处理,安全处理要用到wss4j(WebServiceSecurityForJava)这个jar了。

WSS4J实现了WS-Security,是AXIS的安全模块,但也可以用于其他Web Services框架(例如XFIRE,CXF)。
WSS4J在Web Services框架中以handler方式工作,在发送SOAP消息前进行签名、加入认证凭据和加密,在收到SOAP消息后进行解密、认证和验证签名等安全工作。使用者可以自己编写handler处理SOAP消息以保证安全。以下是客户端调用的部分代码


JaxWsDynamicClientFactory dynamicClient = JaxWsDynamicClientFactory.newInstance();
        Client client = dynamicClient.createClient("your wsdl");
        Map<String, Object> props = new HashMap<String, Object>();  
        props.put(WSHandlerConstants.ACTION, WSHandlerConstants.USERNAME_TOKEN);        
        props.put(WSHandlerConstants.PASSWORD_TYPE,WSConstants.PW_TEXT);  
        props.put(WSHandlerConstants.USER, "server");  
        props.put(WSHandlerConstants.PW_CALLBACK_CLASS, TestPasswordHandler.class.getName());  
        WSS4JOutInterceptor outintercept = new WSS4JOutInterceptor(props);
        client.getOutInterceptors().add(outintercept);
        client.getOutInterceptors().add(new SAAJOutInterceptor());
        Object[] rets = client.invoke("your server mehtod","params");



 客户端依赖的jar包,如下:

© 著作权归作者所有

共有 人打赏支持
johnny_chen
粉丝 0
博文 11
码字总数 48422
作品 0
南京
程序员
CXF Web Service 报错,很急,请找高人解决

使用cxf webservice做服务端和客户端时出现了报错,以前重来未遇到过。 服务端收到近1万次webservice请求时,服务端无法再接收到webservice请求,过个几个小时也无法恢复,只能重启应用服务器...

學楽
2017/10/24
104
3
关于C#客户端调用java cxf webservice加入ws-security验证的的问题

各位好,我现在再C#做webservice的客户端,调用java cxf webservice框架提供的webservice服务,但是cxf加入了ws-security用户认证采用的是usernameToken的方式要求客户端传递一个用户名和密码...

小文大哥哥
2012/04/10
4K
3
webservice技术之巅峰对决(httpclient远程调用通用技术详解)

在工作中,经常会遇到不同公司系统之间的远程服务调用。远程调用技术非常多,如rmi、netty、mina、hessian、dubbo、Motan、springcloud、webservice等等。虽然在互联网的今天,可能大多数公司...

em_aaron
07/11
0
0
Web Service 调用时间每次都得五分钟才响应结果(Web Service Call Need 5 minutes Everytime)

今天调试WebService服务的时候遇到一个问题,WebService的服务端是用Jaxws(JDK自带)构建,测试用的客户端是用Eclipse自动生成。 在每次客户端调用的时候,服务端能接受请求,并处理请求,但是...

刀狂剑痴
2015/08/27
525
0
综合技术 --webservice理解

目前,几乎所有的应用程序都需要与运行在其它异构平台上的应用程序进行数据交换,这就需要一个接口来满足两个不同的平台。webservice能满足客户端和服务器之间通过http进行通信,无论这两个程...

求是科技
2015/04/06
0
0
iOS项目架构 - 模块化

iOS项目架构 - 模块化 当我们谈论iOS架构的时候我们在谈论什么 模块化 规范化 统一行为 本文主要就以上模块化,以网络请求模块的抽取为例稍作讨论。 模块化 模块化的目的是实现解耦,提升模块...

我是IT码农
2016/03/29
432
0
WebService到底是什么?

一、序言 大家或多或少都听过WebService(Web服务),有一段时间很多计算机期刊、书籍和网站都大肆的提及和宣传WebService技术,其中不乏很多吹嘘和做广告的成分。但是不得不承认的是WebServ...

huojiao2006
2017/01/13
0
0
集成webservice遇到了的问题

请教各位大侠,我们在集成webservice遇到了个问题,简单描述一下场景: 项目在G省上线之后(用java开发的),需要跟各县的第三方厂商对接,初步统计有20多家厂商,什么语言的都有。现在已经定了...

与龙共舞
2013/09/03
877
25
WebService学习总结(一)--WebService的相关概念

一、序言   大家或多或少都听过 WebService(Web服务),有一段时间很多计算机期刊、书籍和网站都大肆的提及和宣传WebService技术,其中不乏很多吹嘘和做广告的成 分。但是不得不承认的是W...

JAVA_NINA
2016/05/02
29
0
php中四种webservice实现的简单架构方法及实例

本人所了解的webservice有以下几种:PHP本身的SOAP,开源的NUSOAP,商业版的PHPRPC,以及使用二进制传输数据流的HessianPHP,那么一下就简单的介绍下这几种webservice在php中的使用,虽然网上也...

stone_
2016/10/19
17
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

【面试题】盲人坐飞机

有100位乘客乘坐飞机,其中有一位是盲人,每位乘客都按自己的座位号就坐。由于盲人看不见自己的座位号,所以他可能会坐错位置,而自己的座位被占的乘客会随便找个座位就坐。问所有乘客都坐对...

garkey
50分钟前
0
0
谈谈神秘的ES6——(二)ES6的变量

谈谈神秘的ES6——(二)ES6的变量 我们在《零基础入门JavaScript》的时候就说过,在ES5里,变量是有弊端的,我们先来回顾一下。 首先,在ES5中,我们所有的变量都是通过关键字var来定义的。...

JandenMa
今天
1
0
arts-week1

Algorithm 594. Longest Harmonious Subsequence - LeetCode 274. H-Index - LeetCode 219. Contains Duplicate II - LeetCode 217. Contains Duplicate - LeetCode 438. Find All Anagrams ......

yysue
今天
0
0
NNS拍卖合约

前言 关于NNS的介绍,这里就不多做描述,相关的信息可以查看NNS的白皮书http://doc.neons.name/zh_CN/latest/nns_background.html。 首先nns中使用的竞价货币是sgas,关于sgas介绍可以戳htt...

红烧飞鱼
今天
1
0
Java IO类库之管道流PipeInputStream与PipeOutputStream

一、java管道流介绍 在java多线程通信中管道通信是一种重要的通信方式,在java中我们通过配套使用管道输出流PipedOutputStream和管道输入流PipedInputStream完成线程间通信。多线程管道通信的...

老韭菜
今天
0
0
用Python绘制红楼梦词云图,竟然发现了这个!

Python在数据分析中越来越受欢迎,已经达到了统计学家对R的喜爱程度,Python的拥护者们当然不会落后于R,开发了一个个好玩的数据分析工具,下面我们来看看如何使用Python,来读红楼梦,绘制小...

猫咪编程
今天
1
0
Java中 发出请求获取别人的数据(阿里云 查询IP归属地)

1.效果 调用阿里云的接口 去定位IP地址 2. 代码 /** * 1. Java中远程调用方法 * http://localhost:8080/mavenssm20180519/invokingUrl.action * @Title: invokingUrl * @Description: * @ret......

Lucky_Me
今天
1
0
protobuf学习笔记

相关文档 Protocol buffers(protobuf)入门简介及性能分析 Protobuf学习 - 入门

OSC_fly
昨天
0
0
Mybaties入门介绍

Mybaties和Hibernate是我们在Java开发中应用的比较多的两个ORM框架。当然,目前Mybaties正在慢慢取代Hibernate,这是因为相比较Hibernate而言Mybaties性能更好,响应更快,更加灵活。我们在开...

王子城
昨天
2
0
编程学习笔记之python深入之装饰器案例及说明文档[图]

编程学习笔记之python深入之装饰器案例及说明文档[图] 装饰器即在不对一个函数体进行任何修改,以及不改变整体的原本意思的情况下,增加函数功能的新函数,因为这个新函数对旧函数进行了装饰...

原创小博客
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部