2010-07-08 63 views
14

我想用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 

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

回答

0

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

10

我有一个使用实体项目在客户端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]:您可以复制它们并调整所有软件包引用。

+0

如果我只是移动javax.xml.bind.annotation *我得到的错误编译时。一个例子 - 'DOMHandler' - '没有源代码可用于类型javax.xml.transform.Result'。我错过了什么吗? – 2012-11-27 21:15:37

+0

您需要从源中引用的所有类/接口/注释的完整源代码。也复制'javax.xml.transform.Result'的源文件。 – 2012-11-29 12:03:48

+0

谢谢 - 我从javax.xml.bind复制了所有内容,但只需将其限制在我的依赖关系中。你是用这个来解析xml还是其他的东西?我试图解析XML,并且如果我解开服务器端(难以序列化jaxb类)或客户端(进一步的依赖关系问题),如何解决依赖关系问题。 – 2012-12-05 08:00:06

0

我能够通过从GWT模块XML源不包括产生的JAXB的ObjectFactory来解决我的GWT编译器的问题:

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