我想将Match
数组发送到服务器。这是Match.java:
@XmlRootElement
public class Match {
public enum State {
Updated, Synced
};
@XmlElement
public int matchId;
@XmlElement
public int timeFrom;
@XmlElement
public int timeTo;
@XmlElement
public MatchConfig config; // can be null
public State state;
public Match() {
}
}
然而,当我发送一个数组时,它会告诉我:
警告:/ api / match java.lang.ClassCastException:test.rest.Match无法强制转换为javax.xml.bi nd.JAXBElement
为什么会这样?
我的Servlet方法看起来像这样
@POST
@Path(MATCH_PATH)
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public Match[] syncMatches(Match[] matches) {
System.out.println("received matches!");
return new Match[]{new Match()};
}
顺便说一句,将数组从服务器返回到客户端是否有效,并且还向服务器发送单个Match对象。
典型的服务器json输出为:[{"matchId":12,"timeFrom":23,"timeTo":0}]
。
我的客户端发送的内容如下所示:[{"matchId":-1,"timeTo":-1,"timeFrom":265}]
。
答案 0 :(得分:0)
这是MOXy的MOXyJsonProvider
类中存在的问题,已在EclipseLink 2.5.1中修复。
链接到已解决的问题
下载EclipseLink的链接