Web Service 一点小事儿
2016-03-07 17:28
281 查看
到现在为止我还是对WebService 迷迷糊糊,前几天工作中遇到了一个调用WebService的问题,让我费尽了脑子查了好久也没有个结果,在我最后失去信心想把它丢给同事的时候(抱歉我自己也觉得有些内疚
),一位同事提供的建议让我又起了兴致去解决它。
来说问题:在我的系统调用WebService的时候,程序可恶的给我抛出了这个异常:
严重: Servlet.service()for servlet BasicInfoGet threw exception
java.lang.AbstractMethodError:org.apache.xerces.dom.ElementNSImpl.setUserData(Ljava/lang/String;Ljava/lang/Object;Lorg/w3c/dom/UserDataHandler;)Ljava/lang/Object;
at org.apache.cxf.staxutils.StaxUtils.addLocation(StaxUtils.java:1189)
at org.apache.cxf.staxutils.StaxUtils.readDocElements(StaxUtils.java:1077)
at org.apache.cxf.staxutils.StaxUtils.readDocElements(StaxUtils.java:1050)
at org.apache.cxf.staxutils.StaxUtils.read(StaxUtils.java:977)
at org.apache.cxf.wsdl11.WSDLManagerImpl.loadDefinition(WSDLManagerImpl.java:234)
at org.apache.cxf.wsdl11.WSDLManagerImpl.getDefinition(WSDLManagerImpl.java:192)
at org.apache.cxf.wsdl11.WSDLServiceFactory.<init>(WSDLServiceFactory.java:92)
at org.apache.cxf.jaxws.ServiceImpl.initializePorts(ServiceImpl.java:199)
at org.apache.cxf.jaxws.ServiceImpl.<init>(ServiceImpl.java:147)
at org.apache.cxf.jaxws.spi.ProviderImpl.createServiceDelegate(ProviderImpl.java:97)
at javax.xml.ws.Service.<init>(Service.java:56)
此处省略。。
我网上查找,得到的答案都是xerces-2.6.2.jar包冲突,其中一个答案如下:
项目是:hibernate3.0整合cxf。
cxf 以Endpoint方式发布服务,报如上的错误,就知道是jar冲突。找了半天把xerces-2.6.2.jar remove form build 重新发布,成功!
我也把xerces-2.6.2.jar从工程里面删掉(但是我忘记了从build
path中删掉,导致引入包显示missing的错误),重新发布后还是报错,这次是报的下面这个错误:
javax.wsdl.xml.WSDLReader.readWSDL(Ljavax/wsdl/xml/WSDLLocator;Lorg/w3c/dom/Element;)Ljavax/wsdl/Definition;
继续查找资料后,发现这样一个回答:
[align=left]异常分析原因:[/align]
[align=left]jar包冲突问题;在tomcat下lib下有个wsdl-1.5.jar,而在cxf中则要使用的wsdl-1.6.jar。[/align]
[align=left]原文链接:http://blog.csdn.net/yuebinghaoyuan/article/details/8456779[/align]
我按照这个说法去查找我的tomcat下是否存在这两个包,结果并没有,而且就像一开始说的,我对Webservice还是不太熟悉,项目也不是我搭建起来的,所以我也不清楚项目里使用了哪些包,既然tomcat下没有,我就去项目中查看都有哪些包,果然被我发现了:项目中有两个类似的wsdl4j-1.5.1.jar和wsdl4j-1.6.2.jar
!!,虽然名称略不相同,我就抱着试试看的态度,把低版本的那个包也删除了,这次记得在配置中也删除。然后重新发布,测试,成功!
[align=left] 非常感谢大家提供的帮助!谢谢网友们把经验分享出来![/align]
),一位同事提供的建议让我又起了兴致去解决它。
来说问题:在我的系统调用WebService的时候,程序可恶的给我抛出了这个异常:
严重: Servlet.service()for servlet BasicInfoGet threw exception
java.lang.AbstractMethodError:org.apache.xerces.dom.ElementNSImpl.setUserData(Ljava/lang/String;Ljava/lang/Object;Lorg/w3c/dom/UserDataHandler;)Ljava/lang/Object;
at org.apache.cxf.staxutils.StaxUtils.addLocation(StaxUtils.java:1189)
at org.apache.cxf.staxutils.StaxUtils.readDocElements(StaxUtils.java:1077)
at org.apache.cxf.staxutils.StaxUtils.readDocElements(StaxUtils.java:1050)
at org.apache.cxf.staxutils.StaxUtils.read(StaxUtils.java:977)
at org.apache.cxf.wsdl11.WSDLManagerImpl.loadDefinition(WSDLManagerImpl.java:234)
at org.apache.cxf.wsdl11.WSDLManagerImpl.getDefinition(WSDLManagerImpl.java:192)
at org.apache.cxf.wsdl11.WSDLServiceFactory.<init>(WSDLServiceFactory.java:92)
at org.apache.cxf.jaxws.ServiceImpl.initializePorts(ServiceImpl.java:199)
at org.apache.cxf.jaxws.ServiceImpl.<init>(ServiceImpl.java:147)
at org.apache.cxf.jaxws.spi.ProviderImpl.createServiceDelegate(ProviderImpl.java:97)
at javax.xml.ws.Service.<init>(Service.java:56)
此处省略。。
我网上查找,得到的答案都是xerces-2.6.2.jar包冲突,其中一个答案如下:
项目是:hibernate3.0整合cxf。
cxf 以Endpoint方式发布服务,报如上的错误,就知道是jar冲突。找了半天把xerces-2.6.2.jar remove form build 重新发布,成功!
我也把xerces-2.6.2.jar从工程里面删掉(但是我忘记了从build
path中删掉,导致引入包显示missing的错误),重新发布后还是报错,这次是报的下面这个错误:
javax.wsdl.xml.WSDLReader.readWSDL(Ljavax/wsdl/xml/WSDLLocator;Lorg/w3c/dom/Element;)Ljavax/wsdl/Definition;
继续查找资料后,发现这样一个回答:
[align=left]异常分析原因:[/align]
[align=left]jar包冲突问题;在tomcat下lib下有个wsdl-1.5.jar,而在cxf中则要使用的wsdl-1.6.jar。[/align]
[align=left]原文链接:http://blog.csdn.net/yuebinghaoyuan/article/details/8456779[/align]
我按照这个说法去查找我的tomcat下是否存在这两个包,结果并没有,而且就像一开始说的,我对Webservice还是不太熟悉,项目也不是我搭建起来的,所以我也不清楚项目里使用了哪些包,既然tomcat下没有,我就去项目中查看都有哪些包,果然被我发现了:项目中有两个类似的wsdl4j-1.5.1.jar和wsdl4j-1.6.2.jar
!!,虽然名称略不相同,我就抱着试试看的态度,把低版本的那个包也删除了,这次记得在配置中也删除。然后重新发布,测试,成功!
[align=left] 非常感谢大家提供的帮助!谢谢网友们把经验分享出来![/align]
相关文章推荐
- 关于Python的super用法研究
- dos指令 获取当前目录下所有文件命令解析
- 【设计模式】设计模式系列
- 批量插入 insert 可以
- Oracle外键不加索引会引起死锁问题
- 关于UISearchController的使用方法
- BZOJ(本校) 3049 第K大 - 二分&树形dp
- VC 窗口创建以及窗口之间传递数据、传递消息(模态、非模态)
- .net 定时执行 windows 服务
- Bootstrap 字形图标(Glyphicons)
- 单机模式下使用分布式缓存求矩阵乘积
- 列举一些有所帮助的blog和文章
- Oracle外键不加索引会引起死锁问题
- java加密解密___MD5的简单使用
- HDFS小文件问题及解决方案
- Objective-C用正则表达式判断字符串是否为手机号、邮箱、身份证号
- 关于C++泛型及C++高效迭代开发的思考
- 如何使用Navicat连接Oracle
- VPython—旋转坐标系
- Improve Magento Cache and Session by Using Redis