如何在客户端使用JAXB注释进行GWT?

我想在我的类中使用JaxB注释,如下所示:

@XmlRootElement public class ItemExtension implements Serializable { 

但当我把它放在客户端时,GWT抱怨。

  [ERROR] Line 4: The import javax.xml.bind cannot be resolved [ERROR] Line 14: XmlRootElement cannot be resolved to a type 

有解决方法还是我做错了什么?

我有一个项目,它在客户端GWT代码中使用带有JPA和JAXB注释的实体类。 请参阅GWT文档中的“覆盖一个包实现与另一个包”一节。

假设您的模块位于com.example.app包中。 您需要在新包中重新创建[1]所有JAXB注释类,特别是com.example.app.jre.java.xml.bind.annotation ; 在您的模块XML文件中,然后添加并设置。

请注意,您不需要在该包中分发类文件,仅为了GWT编译器而需要它们。

[1]:您可以复制它们并调整所有包引用。

我已经使用这个库在GWT客户端中进行jaxb解析

http://code.google.com/p/gwtjaxb/

它不是一个完整的JAXB生成器,但它涵盖了我需要的一切。

您可能会在这里找到一个可行的解决方案: GWT和JPA

通过从GWT模块XML中的源中排除生成的JAXB ObjectFactory,我能够解决我的GWT编译器问题: