0

我在 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)

任何建议将不胜感激

4

2 回答 2

0

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

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

在eclipse中,ctr+shift+t,输入类名“ServiceDescriptionWSDL”,如果能看到2个以上的结果,说明classpath中有多个jar。您可以选择它们中的每一个来通过eclipse中的“包资源管理器”检查类中是否存在方法getWSDLLLocation()。根据我的经验,您应该在某个不包含方法 getWSDLLLocation() 的 jar 中找到一个 ServiceDescriptionWSDL,然后将此 jar 从您的类路径中删除,或者如果您使用“-cp”,则将此 jar 移到具有该方法的 jar 后面指定类路径。

于 2013-03-04T07:25:11.867 回答
0

提供的 axis2 jar 可能是更旧的版本,例如'axis2-1.2.jar'.

提供最新的jar文件axis2-metadata-1.6.0.jar

供参考检查这所有的罐子

于 2013-03-04T06:25:40.097 回答