我在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)
任何建议都将受到赞赏
答案 0 :(得分:0)
答案 1 :(得分:0)
这个问题始终是jar版本。确保旧版本不在类路径中,jvm将以类路径指定的顺序加载jar。如果旧版本或其他具有您要加载的类的jar,则将加载该类。
我总是试图像这样解决它:
在eclipse中,ctr + shift + t,输入类名“ServiceDescriptionWSDL”,如果可以看到2个以上的结果,则表示类路径中有几个jar。您可以选择每个方法来检查eclipse中“package explorer”在类中是否存在方法getWSDLLocation()。 根据我的经验,你应该在某个jar中找到一个不包含方法getWSDLLocation()的ServiceDescriptionWSDL,然后从你的类路径中删除这个jar,或者如果你使用“-cp”那么将这个jar移到有方法的jar后面指定类路径。