NoSuchMethodError:org.apache.axis2.jaxws.description.ServiceDescriptionWSDL.getWSDLLocation()

时间:2013-03-04 06:07:35

标签: java exception

我在NetBeans IDE 7.3中从wsdl创建了我的Web服务客户端,当我尝试运行它时出现以下错误:

Exception in thread "main" java.lang.NoSuchMethodError: org.apache.axis2.jaxws.description.ServiceDescriptionWSDL.getWSDLLocation()Ljava/lang/String;
    at org.apache.axis2.jaxws.spi.ServiceDelegate.getWSDLDocumentLocation(ServiceDelegate.java:623)
    at org.apache.axis2.jaxws.spi.ServiceDelegate.isValidWSDLLocation(ServiceDelegate.java:742)
    at org.apache.axis2.jaxws.spi.ServiceDelegate.<init>(ServiceDelegate.java:212)
    at org.apache.axis2.jaxws.spi.Provider.createServiceDelegate(Provider.java:59)
    at javax.xml.ws.Service.<init>(Service.java:36)

任何建议都将受到赞赏

2 个答案:

答案 0 :(得分:0)

提供的axis2 jar可能是'axis2-1.2.jar'之类的odler版本。

axis2-metadata-1.6.0.jar

提供最新的jar文件

进行参考检查所有jars

答案 1 :(得分:0)

这个问题始终是jar版本。确保旧版本不在类路径中,jvm将以类路径指定的顺序加载jar。如果旧版本或其他具有您要加载的类的jar,则将加载该类。

我总是试图像这样解决它:

在eclipse中,ctr + shift + t,输入类名“ServiceDescriptionWSDL”,如果可以看到2个以上的结果,则表示类路径中有几个jar。您可以选择每个方法来检查eclipse中“package explorer”在类中是否存在方法getWSDLLocation()。 根据我的经验,你应该在某个jar中找到一个不包含方法getWSDLLocation()的ServiceDescriptionWSDL,然后从你的类路径中删除这个jar,或者如果你使用“-cp”那么将这个jar移到有方法的jar后面指定类路径。