2014-09-03 74 views
0

內調用基於WSDL的Web服務我也跟着這篇文章:http://www.mkyong.com/webservices/jax-ws/jax-ws-hello-world-example/從露天

,所以我有:

供應作爲端點。

在另一側

我有i相的wsimport生成的客戶端:

此運行在Eclispe的細而不露天參與。然而,我想打電話從露天web服務(從java支持的web腳本爲例)

我試圖將客戶端的東西複製到我的amp文件,並從webscript調用它,但它失敗!

Caused by: java.lang.IncompatibleClassChangeError: Class com.ibm.wsdl.DefinitionImpl does not implement the requested interface javax.wsdl.extensions.AttributeExtensible

1 - 有通過定義一個彈簧豆(彈簧WS)或例如

來配置訪問的wsdl更優雅的方式2 - 爲什麼它不起作用?完整跟蹤:使用露天社區http://pastebin.com/ak1qzygA

5.0.a

感謝

+2

http://stackoverflow.com/questions/1980452/what-c​​auses-java-lang-incompatibleclasschangeerror。依賴jar問題? – Abhin 2014-09-03 17:12:49

+0

我從lib目錄中刪除了axis-wsdl4j-1.5.1.jar - 現在它可以工作......但這對我來說很奇怪。 – user1429166 2014-09-04 11:28:04

+1

也許與其他wsdl4j.jar存在衝突; axis-wsdl4j jar優先於另一個。隨着axiswsdl4j罐子現在工作了嗎?也許是 – Abhin 2014-09-04 12:00:06

回答

0

你會看到IncompatibleClassChangeError通常當扶養/庫罐子發生了變化。因此,依賴於庫的方法/代碼必須重新編譯以應對變化。

猜測這裏的問題與一些依賴性jar被誤選或舊版本的jar存在或一個jar優先於另一個有很大關係。查看類路徑中包含'com.ibm.wsdl.DefinitionImpl'類的jar應該會有所幫助。