小编tim*_*ine的帖子

有没有办法向下转换GWT AutoBean?

我一直在使用AutoBeans来映射来自非GWT-RPC基于Java的Web服务的JSON数据.到目前为止,除了一个映射之外,一切都在进行.

在服务器端,Class具有Map类型的属性,其中MyAbstractParentObject是大约15个不同子类的父类.

当我将它映射到客户端上的相应AutoBean接口时,我无法在解码后将MyAbstractParentObject转发为其子类型.我查看了GWT文档和"谷歌",看看AutoBeans是否具有多态支持,但无论如何都无法得到答案.拦截器和类别似乎无法处理这个问题,只是他们希望在接口中存在非getter/setter的方法.

我试图使用JSON数据中的类型字段来创建一个解决方法来创建子类的实例,但是AutoBean不允许我访问原始JSON,即使在调试器中我可以将其视为受保护的字段'数据'.如果我尝试解码原始bean,它将只有MyAbstractParentObject中的字段.

我能看到的唯一选择是:

  1. 扩展或创建我自己的AutoBeanCodex,它可以在解码JSON时正确处理MyAbstractParentObject的子节点.
  2. 找到一种方法来获取MyAbstractParentObject AutoBean中的原始JSON,并使用它来动态创建子类的实例.
  3. 切换到其他JSON-GWT序列化框架,如GWTProJSONSerializer或piriti.

任何帮助,将不胜感激.

java polymorphism gwt json autobean

6
推荐指数
1
解决办法
1216
查看次数

即使在自定义插件中使用显式绑定,m2e仍然会给出"生命周期配置未涵盖插件执行"的错误

我正在构建一个插件来进行代码生成.

我按照这里的步骤来了解如何创建插件:http: //maven.apache.org/guides/plugin/guide-java-plugin-development.html

插件来源:

/**
 * @goal helloworld
 * @phase generate-sources
 */
public class SampleMojo extends AbstractMojo
{
    @Override
    public void execute() throws MojoExecutionException, MojoFailureException
    {
        getLog().info("Hello, world.");
    }
}
Run Code Online (Sandbox Code Playgroud)

用法:

    <plugins>
        <plugin>
            <groupId>com.sample</groupId>
            <artifactId>sample-maven-plugin</artifactId>
            <version>0.0.1</version>
            <executions>
                <execution>
                    <phase>generate-sources</phase>                     
                    <goals>
                        <goal>helloworld</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
Run Code Online (Sandbox Code Playgroud)

该插件本身可以正常工作,但在Eclipse中,我一直得到"生命周期未涵盖"的错误.

我阅读了"如何解决"插件执行未被生命周期配置"Spring Data Maven Builds"所涵盖的内容,我认为如果我创建了自己的插件并设置了@phase和@goal注释,它将摆脱该错误.我真的不想在pom中放入"lifecycleMappingMetadata"节点.

有人对此有任何建议吗?我需要为m2e编写一些特殊内容才能让错误消失吗?

java eclipse maven-plugin maven m2e

3
推荐指数
1
解决办法
2161
查看次数

标签 统计

java ×2

autobean ×1

eclipse ×1

gwt ×1

json ×1

m2e ×1

maven ×1

maven-plugin ×1

polymorphism ×1