Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/356.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 我可以用Jersey(和MOXy)发送对象数组吗?_Java_Google App Engine_Jaxb_Jersey_Moxy - Fatal编程技术网

Java 我可以用Jersey(和MOXy)发送对象数组吗?

Java 我可以用Jersey(和MOXy)发送对象数组吗?,java,google-app-engine,jaxb,jersey,moxy,Java,Google App Engine,Jaxb,Jersey,Moxy,我想向服务器发送一个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;

我想向服务器发送一个
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()};
}
顺便说一句,将数组从服务器返回到客户机是可行的,同时将单个匹配对象发送到服务器也是可行的。 典型的服务器json输出是:
[{“matchId”:12,“timeFrom”:23,“timeTo”:0}]

我的客户机发送的是这样的:
[{“matchId”:-1,“timeTo”:-1,“timeFrom”:265}]

这是MOXy的
MOXyJsonProvider
类中存在的问题,EclipseLink 2.5.1修复了这个问题

已解决问题的链接

下载EclipseLink的链接


我没有使用EclipseLink,但我有与第一个链接相同的stacktrace。我检查了所有其他依赖项,但一切似乎都是最新的。(Jersey 2.10.1、Google App Engine Sdk 1.9.6和javax servlet api 2.5)@user717572-MOXy是EclipseLink的一个组件。