調用webservice用戶端方法 runtime modeler error: Wrapper class ××× is not found. Have you run APT to generate them?

來源:互聯網
上載者:User

標籤:

   用wsimport產生webservice的用戶端以後,調用用戶端產生方法時總是出現 runtime modeler error: Wrapper class stardand.nrcms.ncking.com.Login is not found. Have you run APT to generate them?這個錯誤;

   這個公司的介面我原來是做過的,現在不同的是,換了個地址,和原來的環境是一樣的,jdk1.6.20,然後加入了myeclipse裡邊的jax-ws 2.1 Runtime libraries 和jax-ws 2.1 api libraries,由於wsimport 產生用戶端時,指定包名以後,總是報A class/interface with the same name "XXX**" is already in use的錯誤,導致不能夠產生用戶端代碼,於是就沒有指定包名,產生代碼以後,再在myeclipse裡邊,重新命名為我自己想要的包名。一樣的步驟,為什麼這個就會報錯?

   百度了一下,這個錯誤,發現有幾種答案。

   1.jdk版本要升到jdk1.6.22以上,這個我用了jdk1.6.23,還用了jdk1.6.43,都還是存在這個問題。

   2.需要jaxws-api-2.1.jar及jaxb-api-2.1.jar,這個我試過把myeclipse裡邊的jax-ws 2.1 Runtime libraries和jax-ws 2.1 api libraries都去掉,然後把jaxws-ri-2.2.8裡邊所有的jar拷到工程下邊的lib中去,調用的時候確出現找不到這個一個類的錯誤。後來想jdk1.6裡邊已經包含了jax-ws 2.1,所以應該不是這個問題。

   3.表示.apt_generated源碼包下沒有自動產生jax-ws相應的類,我想這個應該是針對服務端的

   全都試過,沒了辦法,今天又找了同事原來產生過的,能用的用戶端的代碼來調用,同樣也出現這個問題。

   前邊的方法都不對,於是退到原點,把jdk的版本還是用回原來jdk1.6.20,myeclipse裡邊同樣加上jax-ws 2.1 Runtime libraries和jax-ws 2.1 api libraries

   既然說是找不到這個類,是不是命名空間的問題,就是說,我開始我重新命名用戶端的包名的時候,有引用沒改過來,而導致找不到這個類?是不是有注釋引用重新命名的時候,不會同時改過來,於是回到為什麼產生用戶端的時候,會出現A class/interface with the same name "XXX**" is already in use的錯誤,百度以後,在http://chenlin10058.iteye.com/blog/1558591裡邊找到了答案

目前可選擇的方案: 

1.使用-autoNameResolution自動處理 

wsdl2java -autoNameResolution http://localhost:8060/soa/services/otherTrackedVehicleSoapService?wsdl

2.wsimport -p com.test.client -keep http://localhost:8060/soa/services/otherTrackedVehicleSoapService?wsdl-B-XautoNameResolution 

我用了第二種方法

wsimport -s D:\\temp -p com.**.** http://***.***.***  -B-XautoNameResolution

產生用戶端以後,發現用戶端所有的代碼都產生在了一個包下邊,而不像預設包名,代碼分成了兩個包,再把原來引用的相關用戶端的包名改成目前的報名

再調用該方法的時候,發現已經沒問題了

 

為什麼會這樣呢?不管類是不是在一個包裡邊,但是webserivce的命名空間應該是一樣的,對這個沒影響吧,沒有理論基礎,只能不斷的嘗試,摸著石頭過河,這樣的旅程真可怕。

 

調用webservice用戶端方法 runtime modeler error: Wrapper class ××× is not found. Have you run APT to generate them?

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.