Java Jersey中的Moxy JAXB json映射返回415
我有一个带有POST方法处理程序的Jersey2服务Java Jersey中的Moxy JAXB json映射返回415,java,json,jaxb,jersey,moxy,Java,Json,Jaxb,Jersey,Moxy,我有一个带有POST方法处理程序的Jersey2服务 @Path("register") public class RegisterResource { @XmlRootElement class PostUserParams { String username; String password; public PostUserParams() {} } @POST @Consumes(MediaTyp
@Path("register")
public class RegisterResource {
@XmlRootElement
class PostUserParams {
String username;
String password;
public PostUserParams() {}
}
@POST
@Consumes(MediaType.APPLICATION_JSON)
public postData(PostUserParams user) {
...
}
}
但是我不能让POST请求工作-我已经得到415个不支持的媒体类型。我很肯定
- 我在请求中有正确的内容类型
- moxy、jaxb以及所有jar和依赖项都已正确部署
- 我甚至尝试为jersey添加一些moxy配置,但根据文档,这似乎不是必需的
- 其他不涉及JSON到Java转换的请求工作正常
- 请求中的JSON是正确的
给出了什么?经过大量的挖掘和调试(Jersey调试让我头晕目眩!)我发现了一个异常,不幸的是它被这些库吞没了 bean类(在本例中为positionParams)必须具有无参数构造函数。我有,但是这个类不是静态的,因此Java不这样对待它 解决方案:使姿势参数为静态。或者把它放在资源类之外