0

我在服务器上使用Ember-Data客户端和Tomee7with Jax-RS

我非常想使用 Ember-Data 的 JsonAPIAdapter 并遵守 jsonAPI规范

如果我理解正确,所有 HTTP 通信都必须Content-Type标头设置为application/vnd.api+json

当我尝试向服务器发布内容时出现问题,我收到 415 Unsupported Media 错误

我已经这样装饰了我的服务:

@POST
@Consumes("application/vnd.api+json")
@Path("somePostEndPoint")
public Response postService (@FormParam "someData" String someData) {
        //....
}

但我回来了:

需要一个 application/x-www-form-urlencoded 表单请求,但请求媒体类型是 application/vnd.api+json。考虑删除 @FormParam 注释

当我在 EmberData 之外(使用 Postman)发出请求时,一切正常。

我了解@FormParam 需要Content-Type: application/x-www-form-urlencoded. 我可以用别的东西吗?

不使用 JsonApiAdapter 将是一种耻辱。:(

有人有什么我可以尝试的想法吗?

谢谢!

4

1 回答 1

0

好的,我的一位同事想通了:

@Path("somePostEndPoint")
    @POST
    @Produces(value={"application/vnd.api+json",MediaType.APPLICATION_JSON})
    @Consumes(value={"application/vnd.api+json",MediaType.APPLICATION_JSON})

    public Response postService (String someData) {
      //...
    }
  • 不要使用@FormParam,只需设置一个字符串。@FormParam需要 Content-Type: application/x-www-form-urlencoded

  • 利用@Consumes(value={"application/vnd.api+json",MediaType.APPLICATION_JSON})

这对我们有用。

于 2016-12-23T12:26:03.477 回答