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

时间:2010-07-08 13:08:28

标签: java gwt annotations jaxb

我想在我的班级中使用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

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

5 个答案:

答案 0 :(得分:12)

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

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

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

[1]:您可以复制它们并调整所有包装参考。

答案 1 :(得分:1)

答案 2 :(得分:1)

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

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

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

答案 3 :(得分:0)

您可以在此处找到可行的解决方案:GWT with JPA

答案 4 :(得分:0)

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

<source path="model">
    <exclude name="**/ObjectFactory.*" />
</source>