2013-07-23 3 views
0

Я пытаюсь создать действие на ресурсе в dropwizard, который принимает представление, но допускает, чтобы это было null, т.е. нет сообщений от клиента.Как создать ресурс dropwizard (трикотажа), который принимает представление с нулевым значением?

В настоящее время от клиента я должен опубликовать «{}», в противном случае возвращается HTTP 415, поддерживается тип носителя без поддержки. Я предполагаю, что это связано с тем, что мой клиент не отправляет заголовок типа контента в качестве длины содержимого = 0.

Я попытался определить ресурсы следующим образом, но получить «возникновение типа медиа-типа» из джерси, как и для обоих методов потребляют один и тот же путь, а трикотаж не может различаться между ними:

@Path("/interview") 
@Produces(MediaType.APPLICATION_JSON) 
@Consumes(MediaType.APPLICATION_JSON) 
@Log 
class InterviewResource { 

    @POST 
    @Timed 
    Interview advanceNewInterview() { 

     // some processing... 
    } 

    @POST 
    @Timed 
    Enquiry advanceNewInterview(@Valid AdvanceInterviewRepresentation advanceInterview) { 

     // some processing... 
    } 
} 

Любые идеи о том, как это представить?

+0

Можете ли вы попробовать удалить аннотацию @Consumes. Хакки, но может работать. – kashyap

ответ

0

Вы можете использовать Дополнительно для параметра, как показано ниже:

@POST 
@Timed 
Enquiry advanceNewInterview(@Valid Optional<AdvanceInterviewRepresentation> advanceInterview) 
{ 
    if (advanceInterview.isPresent()) 
    { 
     // some processing... 
    } 
} 

Howerver Основной причиной 415 не упоминая заголовок Content-Type. В вашем случае это должно быть Content-Type: application/json

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

  • Нет связанных вопросов^_^