我有一個使用Web服務的java web服務客戶端。客戶端使用WSDL2Java工具生成。所有工作都正常,直到Web服務提供者通過添加非必填字段來更改其中一個架構對象。當調用Web服務時,響應應該返回這些模式對象的數組,並且由於返回的對象有一個額外的字段 - 所有內容都會中斷。根據我的理解,有一種方法可以在不破壞客戶端應用程序的情況下進行此類更改。
你能指出我如何解決這個問題的正確方向嗎? 任何建議表示讚賞。 謝謝, Nadia從客戶端應用程序中解耦WSDL
2
A
回答
1
Web服務不符合WSDL? 也許你可以編寫WSDL並添加非必填字段
或者WSDL已更改? 如果WSDL已更改,則需要使用WSDL2Java工具重新生成代碼。
+0
是的,WSDL已經改變,它可能會再次發生。我希望我的客戶端能夠忽略這些WSDL更改,是否有可能? – Nadia 2011-05-03 14:51:28
1
這個問題通常很難解決,這就是爲什麼面向客戶端的XML模式不應該經常更改的原因。您可以嘗試禁用模式驗證,但是如果模式更改太多,您的客戶端應用程序仍會爆炸。
推薦的企業方式(使用行話:'鬆耦合')是在生成的Java類和域對象之間有一個單獨的域對象層和映射。只是在模式更改時更新映射,這些映射不應該深入到應用程序的層中。但是,每次模式更改時仍然需要重新編譯應用程序。
2
嘗試嘗試爲客戶端使用不同的綁定選項。如果我沒有錯誤使用JAXBRI(od JiBX)應該解決問題。嘗試WSDL2Java -d jaxbri
默認爲adb更多信息在here
相關問題
- 1. 從curl客戶端解耦SSL負載
- 2. Auth0解耦客戶端/服務器端
- 3. 從服務引用生成的類中解耦Silverlight客戶端
- 4. 接口將客戶端解耦
- 5. 安卓:從客戶端應用程序
- 6. 無法從客戶端應用程序
- 7. 如何爲WSDL服務生成Web應用程序客戶端?
- 8. 谷歌應用程序腳本肥皂客戶端沒有wsdl
- 9. wsdl客戶端java
- 10. ASP.Net中的客戶端應用程序
- 11. 客戶端響應應用程序.Json
- 12. EJB遠程應用程序 - 客戶端
- 13. 使用Linq表達式將客戶端從DAL(服務器端)解耦出來
- 14. Apigee客戶端應用程序客戶端身份驗證
- 15. 在nodejs應用程序中瞭解我的客戶端ip
- 16. 客戶端Web應用程序中的GPG(PGP)解密
- 17. 從WSDL編寫Webservice客戶端
- 18. 從c#winforms客戶端提取wsdl
- 19. 從wsdl創建Webservice客戶端url
- 20. 從SOAP生成客戶端jar wsdl
- 21. 從WSDL創建java客戶端
- 22. 從WSDL創建客戶端jar
- 23. 從android wsdl客戶端代碼生成
- 24. 現有的wsdl客戶端
- 25. 動態客戶端WSDL
- 26. SOAPpy WSDL客戶端認證
- 27. WSDL客戶端問題,PHP
- 28. C客戶端在服務器客戶端應用程序中的進程ID
- 29. 將使用CXF而不是Axis for Restfull SOAP調用將客戶端與wsdl中的更改解耦?
- 30. net.pipe端點不能從客戶端應用程序連接
歡迎來到StackOverflow。這是一個提出Java問題的好地方。如果你在java問題上標記java,更多的人會看到它們!修正了這個問題。越多的人看到這一點,就越有可能得到幫助。 – 2011-05-03 13:50:19
謝謝沃倫。 – Nadia 2011-05-03 14:19:31