2010-05-02 58 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

而不是修改生成的类来添加方法 - 扩展生成的类,并将其他方法放在派生自生成的类的类中。