我有多個(讓我們說2,A和B)web服務,我需要生成一個客戶端使用它們togheter。 在Netbeans中,我使用嚮導「新的Web服務客戶端」傳遞兩個wsdl,看着輸出Netbeans只需調用每個人的wsimport。wsimport:多個wsdl覆蓋ObjectFactory
wsimport http:/mydomain/wsA.svc?wsdl
wsimport http:/mydomain/wsB.svc?wsdl
A和B,產生相同的包com.mydomain.myapp(I猜測它們在相同的命名空間定義),所以我得到的短線類別集合A和B在相同的包合併。
但是,wsimport也爲每個webservice創建一個ObjectFactory,所以如果我在A之後生成B的存根,我只獲得與B定義相關的ObjectFactory(因爲第一個A被覆蓋)。相反,如果我切換順序,A的ObjectFactory仍然存在。
的問題是,我需要同時ObjectFactories以創建類型既web服務A和B.
的JAXBElements包裝CLAS情況下,有沒有辦法爲一個命名空間映射Java包和B在另一個爲了獲得
com.mydomain.myapp.a
com.mydomain.myapp.b
所以保持這兩個ObjectFactories?
簡單的重構沒有幫助,因爲內部調用了getClass(),所以一旦重構了包,它就不再工作了。
好的!我使用了這個XML綁定: \t \t \t
alexroat
只是有一個想法 - 你有沒有嘗試過「wsimport -p com.mydomain.myapp.a http:/mydomain/wsA.svc?wsdl」,然後是「wsimport -p com.mydomain.myapp.b http:/ mydomain/wsB .SVC?WSDL「?這將把所有生成的代碼放到指定的包中(按照「-p」開關),而不需要綁定文件。 (應該早點想到它......) – FOOM
是的,我做到了。像「兩個聲明在ObjectFactory中引起衝突」類有很多錯誤。和「具有相同名稱的類/接口」com.anthesi.prova.ExecuteTransmDocModelResponse「已在使用中,請使用類定製來解決此衝突。 – alexroat