2010-05-02 112 views
2

我正在Netbeans 6.8下開發一個使用JAX-WS和JAXB的SOAP服務,並且每次XSD模式我的JAXB綁定都基於更改時,Netbeans會甩掉我的工作而感到有點沮喪。防止Netbeans JAXB生成垃圾類

詳細說明,IDE自動生成綁定到模式的類,然後可以使用JAXB將(從)綁定到XML。對於這些類,我添加了額外的方法(例如)轉換爲單獨的類,並將其設計爲使用JPA持久化到數據庫。問題是,只要架構發生變化並重建,這些類就會重新生成,並且我的所有自定義方法都將被刪除。我可以通過從備份文件複製粘貼來手動替換它們,但這非常耗時且乏味。由於我使用的是迭代設計方法,因此模式的變化非常頻繁,而且我每次都在浪費大量時間,只是爲了恢復我以前的代碼。

儘管IDE自動重新生成JAXB綁定類是完全合理的,但我並不是想暗示其他方式,我想知道是否有人對如何防止我的額外工作必須手動恢復我的模式改變了嗎?

回答

1

由於您發現的原因,對XJC生成源進行修改並不是一個好主意。您應該使用綁定自定義或XJC插件來生成您需要的其他代碼,否則將附加代碼從XJC生成代碼移出並放入單獨的源文件中。

如果您需要額外的代碼來在JAXB和JPA類模型之間進行轉換,那麼它可能作爲獨立的轉換層獨立運行。這種方式不是很OO,但它會解決你的問題。

另外,有一個XJC plugin,應該讓你保留已經手動添加到生成的源代碼的代碼,但它沒有很好的文檔記錄(我沒有使用它自己)。您可能需要在http://jaxb.dev.java.net/上找到如何使用它。

+0

我曾經希望避免翻譯翻譯層,因爲它不是最優雅的解決方案,但看起來這可能是我要去的方式。謝謝! – Mac 2010-05-03 23:41:17

0

而不是修改生成的類來添加方法 - 擴展生成的類,並將其他方法放在派生自生成的類的類中。