Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 生成GWT覆盖类型_Java_Gwt_Jaxb_Code Generation - Fatal编程技术网

Java 生成GWT覆盖类型

Java 生成GWT覆盖类型,java,gwt,jaxb,code-generation,Java,Gwt,Jaxb,Code Generation,是否有任何工具/脚本/方法可以从JavaBean类自动生成覆盖类型?例如,通过在字段/getter上放置注释,可能使用标准的JAXB注释,如@XmlElement 这里有一个重复的主题:,但问题还没有得到回答。唯一的答案是使用Protostuff,这并不是我想要的。为什么要覆盖类型?是否要使用JSON(P)而不是RPC? 我在RPC层中使用JAXB注释对象,这样我就不需要2个版本的对象。RPC是缓慢和难以加载测试,所以在这种情况下,我可以理解你想去覆盖的方式。我在一些地方做了这件事,在那里它产生

是否有任何工具/脚本/方法可以从JavaBean类自动生成覆盖类型?例如,通过在字段/getter上放置注释,可能使用标准的JAXB注释,如@XmlElement


这里有一个重复的主题:,但问题还没有得到回答。唯一的答案是使用Protostuff,这并不是我想要的。

为什么要覆盖类型?是否要使用JSON(P)而不是RPC?
我在RPC层中使用JAXB注释对象,这样我就不需要2个版本的对象。RPC是缓慢和难以加载测试,所以在这种情况下,我可以理解你想去覆盖的方式。我在一些地方做了这件事,在那里它产生了巨大的影响。

因为覆盖类型文档是最新的,所以不可能由生成器生成覆盖类型实现

它说:

GWT1.5中覆盖类型的实现不支持 定义新JSO子类型的生成器(由于需要重新定义或 否则,在后续编译期间扩展JavaScriptObject$)。 这项限制仍然存在


我终于找到了一种方法来实现这一点,尽管它只是半自动化的。在Eclipse中,您可以创建如下代码模板(窗口/首选项/Java/编辑器/模板):

public final native ${type:var} get${nameCamelCase:var}() /*-{
    return this.${name:var};
}-*/;

public final native void set${nameCamelCase}(${type} ${name}) /*-{
    this.${name} = ${name};
}-*/;
给它起个名字,比如“get”。
然后在任何GWT编辑器中,您都应该键入“get”并按Ctrl+Space,然后输入。

覆盖类型的原因是什么?您是否使用JSON(P)来调用服务层?因为:1)RPC不可能自动测试2)服务器依赖于GWT和RPC 3)在服务器上,我们有Spring MVC来实现所有功能:同步或异步。对于SpringMVC来说,这并不重要。您可以在不接触服务器的情况下从同步更改为异步,然后再返回。有了RPC,你只能梦想得到它。我们可以在整个应用程序中应用相同的过滤器,无论是否适用于GWT 4)您可以在Firebug等简单嗅探器中查看所有请求数据5)您可以将JSON数据保留在页面上,以便随后从组件中读取(对Spring表单有用),或者使用Ajaxintersting idea返回它,但我的意思不是通过GWT生成器生成,而是在通常的Java构建过程中使用Eclipse/Maven/Ant/etc中的一些生成器