我的 GWT 服务返回LinkedList<VisualData>
。VisualData
看起来是这样的:
import javax.xml.bind.annotation.XmlRootElement;
import com.google.gwt.user.client.rpc.IsSerializable;
@XmlRootElement
public class VisualData implements IsSerializable {
private Number value;
private long timestamp;
public VisualData() {
}
public VisualData(Number value, long timestamp) {
this.value = value;
this.timestamp = timestamp;
}
public long getTimestamp() {
return timestamp;
}
public Number getValue() {
return value;
}
public void setTimestamp(long timestamp) {
this.timestamp = timestamp;
}
public void setValue(Number value) {
this.value = value;
}
}
我得到以下与 field 相关的异常private Number value
。
SEVERE: The exception contained within MappableContainerException could not be mapped to a response, re-throwing to the HTTP container
org.codehaus.jackson.map.JsonMappingException: Can not deserialize instance of java.lang.Number out of START_OBJECT token
at [Source: org.apache.catalina.connector.CoyoteInputStream@a0eb51; line: 1, column: 29] (through reference chain: org.jage.charts.client.VisualData["value"])
当我更改private Number value
为 时private Object value
,我得到的所有 getter 和 setter:
SEVERE: WebModule[/AgECharts]Exception while dispatching incoming RPC call
com.google.gwt.user.client.rpc.SerializationException: Type 'org.jage.charts.client.VisualData' was not included in the set of types which can be serialized by this SerializationPolicy or its Class object could not be loaded. For security purposes, this type will not be serialized.: instance = Value:{@type=xs:int, $=6}, timestamp:1360240281439
at com.google.gwt.user.server.rpc.impl.ServerSerializationStreamWriter.serialize(ServerSerializationStreamWriter.java:619)
第二种情况很清楚,Object
该类不可序列化。但为什么我会得到Can not deserialize instance of java.lang.Number out of START_OBJECT token
?