2014-02-13 4 views
1

У меня есть служба Jersey2 с обработчиком методом POSTMoxy JAXB отображение в формате JSON-Джерси возвращает 415

@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 неподдерживаемых Тип носителя. Я уверен, что

  • У меня есть правильный Content-Type в запросе
  • Moxy, JAXB и все банки и зависимость должным образом развернуты
  • Я даже пытался добавить Moxy конфигурации для трикотажа , но это не представляется необходимым в соответствии с Документами
  • других запросов, не связанных с JSON для преобразования работы Java тонкой
  • JSON в запросе правильно

Что дает?

ответ

3

После много рытья и отладки (отталкивание Джерси вызывает у меня головокружение!) Я нашел исключение, которое, к сожалению, проглотило внутри этих библиотек.

Класс bean, PostUserParams в этом случае должен иметь конструктор без параметров. У меня это есть, но класс не статичен, поэтому Java не рассматривает его как таковой.

Решение: сделать PostUserParams статическим. Или поставьте его вне класса ресурсов.

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