2016-12-22 2 views
0

Я использую Ember-Data клиентов и Tomee7 с Jax-RS на сервере.Ember JsonApi с типом содержимого Jax-Rs на сообщениях

Я очень хотел бы использовать JsonAPIAdapter Тлеющей-Data и придерживаться jsonAPI specifications

Если я правильно понимаю, все HTTP-сообщения must имеют Content-Type заголовок установлен в application/vnd.api+json

Проблема, когда я пытаюсь чтобы POST-то к серверу я получаю сообщение об ошибке 415 Unsupported Media

Я украшены свои услуги, как это:

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

, но я вернулся: запрос форма

Применение/х-WWW-форм-urlencoded, как ожидается, но запрос типа носителя является применение/vnd.api + JSON. Рассмотрите возможность удаления аннотаций @FormParam

Когда я делаю запрос за пределами EmberData (с почтальоном) Все работает нормально.

Я понимаю, что @FormParam требует Content-Type: application/x-www-form-urlencoded. Могу ли я использовать что-то еще?

Было бы позором не использовать JsonApiAdapter. :(

Кто-нибудь есть какие-либо идеи, что я мог бы попробовать

Благодаря

ответ

0

Ok мой коллега понял это:?!

@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})

это работало для нас.

Смежные вопросы