GWT 2.1.1具有非常好的框架-RequestFactory,其中包含所有EntityProxy和其他内容。

我正在寻找一种方法来序列化实现EntityProxy的运行时实例,以进行调试和记录等。我不关心格式,只要它是人类可读的即可。
更具体地说,我希望有类似Apache Commons Lang提供的内容
ReflectionToStringBuilder
也许有某种方法可以使用GWT内部具有的JSON序列化机制?如果是的话,如何使其更具可读性?

import org.apache.commons.lang.builder.ReflectionToStringBuilder;

String stringRep = ReflectionToStringBuilder.toString(this);

最佳答案

至少有两种解决方案:

第一:基于Thomas Broyer的想法

public static String toString(EntityProxy entityProxy)
{
    DefaultProxyStore store = new DefaultProxyStore();
    Swap.requestFactory.getSerializer(store).serialize(entityProxy);
    return store.encode();
}

产生这样的东西:
{"V":"211","P":{"1@[email protected]":{"O":"PERSIST","R":"2","Y":1,"T":"biz.daich.swap.shared.dto.UserAccountProxy","P":{"id":null,"items":null,"channelId":null,"lastActive":1296194777916,"name":null,"emailAddress":"[email protected]","lastReported":1296194777916,"lastLoginOn":1296194777916}}}}

第二:基于AutoBean framework
public static String toJson(EntityProxy entityProxy)
{
    return AutoBeanCodex.encode(AutoBeanUtils.getAutoBean(entityProxy)).getPayload();
}

哪个产生像
{"emailAddress":"[email protected]","lastActive":1296194777916,"lastLoginOn":1296194777916,"lastReported":1296194777916}

第二个正是我需要的-它在日志中更具可读性。

07-28 13:09