我想擊中Axis2的以下Web服務:http://www.webservicex.net/geoipservice.asmx?WSDLApache Axis2在嘗試點擊Web服務時拋出NoSuchMethodError?
我有Axis2的地方,而我通過下載WSDL到本地驅動器和運行產生我的課:
./wsdl2java.sh -uri geoipservice.wsdl -p geoip -d xmlbeans -s -o geoip
這樣就產生了用build.xml文件構建目錄,然後運行「ant」,並在libs文件夾中生成一個客戶端jar。
我放棄了這個罐子到我的類路徑,然後我嘗試使用下面的代碼打服務:
GeoIPServiceStub stub = new GeoIPServiceStub("http://www.webservicex.net/geoipservice.asmx?WSDL");
GetGeoIPDocument req = GetGeoIPDocument.Factory.newInstance();
GetGeoIP gic = req.addNewGetGeoIP();
gic.setIPAddress("74.125.91.105"); // google.com
GetGeoIPResponseDocument resp = stub.getGeoIP(req);
System.out.println(resp.getGetGeoIPResponse().toString());
事情似乎在第一次運行,我看到的結果回來的系統日誌,但在它結束之前,它會拋出以下異常:
java.lang.NoSuchMethodError: org.apache.axiom.om.impl.OMStAXWrapper.<init>(Lorg/apache/axiom/om/OMXMLParserWrapper;Lorg/apache/axiom/om/OMElement;Z)V
at org.apache.axiom.om.impl.llom.OMStAXWrapper.<init>(OMStAXWrapper.java:52)
at org.apache.axiom.om.impl.llom.OMElementImpl.getXMLStreamReader(OMElementImpl.java:795)
at org.apache.axiom.om.impl.llom.OMElementImpl.getXMLStreamReaderWithoutCaching(OMElementImpl.java:765)
at geoip.GeoIPServiceStub.fromOM(GeoIPServiceStub.java:767)
at geoip.GeoIPServiceStub.getGeoIP(GeoIPServiceStub.java:325)
我已經搜索了所有內容,一直未能找到導致此問題的原因。任何人都可以幫我找到我做錯了什麼?謝謝。
您先生,是對的。我對我的類路徑比我用來編譯我的客戶罐中的一個Axis2的框架的舊版本。我升級了我的classpath中的jar,然後它們是相同的版本。非常感謝你,我花了一個小時,但現在我知道將來的參考 – user146714