我想在我的班级中使用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
是否有解决方法或我做错了什么?
答案 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)
答案 3 :(得分:0)
您可以在此处找到可行的解决方案:GWT with JPA
答案 4 :(得分:0)
我能够通过从GWT模块XML中的源中排除生成的JAXB ObjectFactory来解决我的GWT编译器问题:
<source path="model">
<exclude name="**/ObjectFactory.*" />
</source>