我必須爲一組Web服務提供接口,爲此我已生成代碼存根和對象綁定。許多事務共享一個通用的對象模型,因此大部分生成的代碼重疊。通常這不會成爲問題,因爲我只是重複使用相同的代碼,因爲wsdl會鏈接相同的xsd文件。如何同時使用同一類的不同版本
不幸的是,這些服務的提供者已經將xsd分開,以便每個服務綁定到相同文件的單獨集(基本上是副本)。在他們的規範中,他們聲明客戶端的實現應該隔離每個Web服務以便於維護。基本上,他們希望能夠修改單個Web服務的xsd,同時保持所有其他服務器不變。
的問題如下:
我怎麼能在同一程序中,使每個服務暴露了他們的功能,而與他們的弟兄干擾整合這些不同的組生成的類的?
我認爲的一個解決方案是爲每個解決方案創建一個外觀,以展示所需的功能和對象模型,以便實際實現保持隱藏狀態。然後,巧妙地使用自定義類加載器的每個外觀將加載包含此特定服務的生成代碼的特定jar。
有沒有想法?想法?你遇到類似問題的經歷是什麼?
謝謝
是的,這是我最終做的,通過挖掘更多的Codegen選項,我偶然發現了這種可能性。雖然不是問題的直接解決方案,但確實提供瞭解決問題的簡單而安全的方法。 – Newtopian 2010-08-12 19:14:48