(1)错误描述
今天在使用wsdl4j调用WebService接口的时候,通过main方法运行测试,发现报错了,关键报错信息如下所示:
Caused by: java.lang.NoSuchMethodError: javax.wsdl.extensions.ExtensionRegistry.registerExtensionAttributeType (Ljava/lang/Class;Ljavax/xml/namespace/QName;I)V
上面错误大致意思是:没有这样的方法,意思是没有找到【registerExtensionAttributeType】方法,所以就报错了。
详细的错误信息如下:
Exception in thread "main" org.apache.cxf.bus.extension.ExtensionException:
Could not create object of extension class org.apache.cxf.wsdl11.WSDLManagerImpl.
at org.apache.cxf.bus.extension.Extension.load(Extension.java:260)
at org.apache.cxf.bus.extension.ExtensionManagerImpl.loadAndRegister(ExtensionManagerImpl.java:213)
at org.apache.cxf.bus.extension.ExtensionManagerImpl.getBeanOfType(ExtensionManagerImpl.java:320)
at org.apache.cxf.bus.extension.ExtensionManagerBus.getExtension(ExtensionManagerBus.java:215)
at org.apache.cxf.wsdl11.WSDLServiceFactory.<init>(WSDLServiceFactory.java:74)
at org.apache.cxf.endpoint.dynamic.DynamicClientFactory.createClient(DynamicClientFactory.java:296)
at org.apache.cxf.endpoint.dynamic.DynamicClientFactory.createClient(DynamicClientFactory.java:241)
at org.apache.cxf.endpoint.dynamic.DynamicClientFactory.createClient(DynamicClientFactory.java:234)
at org.apache.cxf.endpoint.dynamic.DynamicClientFactory.createClient(DynamicClientFactory.java:189)
at xxxx.util.CallWsUtil.invoke(CallWsUtil.java:70)
at xxxx.util.CallWsUtil.main(CallWsUtil.java:214)
Caused by: java.lang.NoSuchMethodError:
javax.wsdl.extensions.ExtensionRegistry.registerExtensionAttributeType
(Ljava/lang/Class;Ljavax/xml/namespace/QName;I)V
at org.apache.cxf.wsdl11.WSDLManagerImpl.addExtensionAttributeTypes(WSDLManagerImpl.java:244)
at org.apache.cxf.wsdl11.WSDLManagerImpl.<init>(WSDLManagerImpl.java:105)
at org.apache.cxf.wsdl11.WSDLManagerImpl.<init>(WSDLManagerImpl.java:80)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at org.apache.cxf.bus.extension.Extension.load(Extension.java:249)
... 10 more
报错原因:
- 项目中使用了两个wsdl4j版本,一个是公司框架自带了【wsdl4j 1.6】左右的版本,然后我的项目里面又引入了【wsdl4j 1.4】左右的版本,所以,在调用WebService接口的时候就冲突了,程序不知到使用哪个依赖里面的方法,最终导致报错,NoSuchMethodError找不到方法。
(2)解决方案
既然是版本冲突导致的报错,解决办法就是使用一个【wsdl4j】的版本即可,最终,我的项目中采用的是【wsdl4j 1.6】左右的版本,完美解决。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/134703.html