我有一个带有一些方法的RESTful服务。方法由@POST和@Consumes(MediaType.APPLICATION_JSON)注释。
我有请求参数的包装器:
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class RequestWrapper {
@XmlElement
private SomeInfo someInfo = new SomeInfo();
@XmlElement
@XmlElementWrapper
private List<RequestParameter> requestParameters = new ArrayList<>();
}
public class SomeInfo {
public String field1;
public String field2;
}
public class RequestParameter {
public String key;
public String value;
}我向我的服务提出请求。邮件正文:
{"someInfo":{"field1":"b","field2":"c"},"requestParameters":[{"key":"1","value":"2"},{"key":"3","value":"4"}]}
我看到someInfo值是通过RequestWrapper处理和访问的。但List<RequestParameter> requestParameters的长度为零。
我应该对正常处理的消息做些什么?
P.S.我用玻璃鱼4.0。maven模块的依赖关系:
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>7.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-json-processing</artifactId>
<version>2.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-servlet-core</artifactId>
<version>2.1</version>
<scope>provided</scope>
</dependency>发布于 2013-08-08 21:30:52
天哪,我找到了魔法子弹
删除@XmlAccessorType(XmlAccessType.FIELD)
删除@XmlElementWrapper
为每个字段设置公共getter/setter
@XmlRootElement
public class RequestWrapper {
@XmlElement
private SomeInfo someInfo = new SomeInfo();
@XmlElement
private List<RequestParameter> requestParameters = new ArrayList<>();
// getters/setters for each field
}https://stackoverflow.com/questions/18135696
复制相似问题