我正在使用JAXB綁定直接解組到我的域層對象,它們是生成的Web服務類型的子類。這是一個很好的解決方案,因爲我可以覆蓋方法並提供編寫自定義邏輯等。但是,XJC編譯器堅持要在所有生成的類上放置@XmlSeeAlso({MySubclass.class})註釋,這會導致它們成爲與我的域對象緊密耦合。這顯然是不受歡迎的,並且在我的項目之間引起各種參考問題,我不會介入。JAXB @XmlSeeAlso導致與域對象緊密耦合
是否有可能生成沒有@XmlSeeAlso註解的類?解組到子類的實際工作似乎發生在ObjectFactory類中。是否可以省略jaxb綁定,併爲每個應用程序替換自定義的ObjectFactory?這將允許我在共享util中自動生成webservice類型,而每個web項目可以解組到這些類型的不同子類。
<jaxb:bindings node="//xs:complexType[@name='AutogeneratedWebserviceType']">
<jaxb:class implClass="my.project.CustomSubclass" />
</jaxb:bindings>
這種結合將創造似乎做解編到我的子類的實際工作中的ObjectFactory的方法:通過提供客戶
public AutogeneratedWebserviceType createAutogeneratedWebserviceType() {
return new CustomSubclass();
}
我想沒有@XmlSeeAlso註釋這種行爲的ObjectFactory , 如果可能的話。
用於螞蟻使用這樣的事情: –
非常感謝 「-target 2.0」解決了我的問題。我在OSGi環境中使用Webservices,這個愚蠢的運行時註解XmlSeeAlso導致了一個緊密的杯子到其他模塊是完全不必要的 – lostiniceland