繁体   English   中英

泽西的Moxy JAXB json映射返回415

[英]Moxy JAXB json mapping in Jersey returns 415

我有一个带有POST方法处理程序的Jersey2服务

@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 Unsupported Media Type。 我很确定

  • 我在请求中有正确​​的Content-Type
  • moxy,jaxb以及所有jar和依赖项都已正确部署
  • 我甚至尝试为球衣添加一些moxy配置,但根据文档,这似乎没有必要
  • 其他不涉及JSON到Java转换的请求工作正常
  • 请求中的JSON是正确的

是什么赋予了?

经过大量的挖掘和调试(Jersey调试让我头晕目眩!)我发现了一个异常,不幸的是它被吞没在这些库中。

在这种情况下,bean类PostUserParams必须具有无参数构造函数。 我有,但该类不是静态的,因此Java不会这样对待它。

解决方案:使PostUserParams静态。 或者把它放在资源类之外。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM