2010-07-15 80 views
2

我有五個共享名稱空間的WSDL,但不是全部。我生成了客戶端代碼(使用XMLBeans進行數據綁定)。分別他們編譯好。我從每個生成的客戶端代碼中創建JAR文件。處理具有多個WSDL的共享名稱空間(xmlbeans)

一旦我嘗試使用項目中的所有JAR文件,就會遇到命名/編譯衝突。

我想盡可能重用。有沒有什麼聰明的方法可以解決這個問題(而不是在包裝結構中爲每個客戶提供一個自己的節點)?

+0

看起來像使用ADB生成代碼(而不是XMLBeans)更加緊密(XMLBeans使用資源文件)。使用亞行可能是解決方案。 – 2010-07-15 09:25:13

回答

2

XMLBeans的(2.X)faq指出的xsdconfig命名空間映射的侷限性:

alt text注:XMLBeans的使用兩個或更多套的Java類不支持(在不同的包)映射到架構具有相同名稱和目標名稱空間的類型/元素,在同一個類加載器中全部使用。根據您用於java類到模式類型映射的方向,某些功能可能無法正常工作。這是因爲即使Java類的包名稱不同,架構元數據(.xsb文件)的架構位置也是相同的,並且包含相應的實現Java類,所以JVM將始終選取類路徑中的第一個。如果使用多個類加載器,這可以避免。

+0

啊,這很有道理。使用亞行工作得很好。我們可以合併所有的領域模型,並有一個好的結果:) – 2010-07-16 08:53:09