2012-01-30 3 views
1

У меня есть веб-сервис Джерси следующим текстом класса ресурсов:Джерси: Возвращает 204 Статус Вместо 500

@Stateless 
@Path("/provision") 
public class ProvisionResource 
{ 
    private final Logger logger = LoggerFactory.getLogger(ProvisionResource.class); 

    @EJB 
    private ProvisionService provisionService; 

    @GET 
    @Produces(MediaType.APPLICATION_XML) 
    @Path("/subscriber") 
    public SubscriberAccount querySubscriberAccount(
      @QueryParam("accountNum") String accountNum) 
    { 
     logger.debug("Entering querySubscriberAccount()"); 

     final SubscriberAccount account; 

     try 
     { 
      account = provisionService.querySubscriber(accountNum); 

      if (account != null) 
      { 
       logger.debug("Retreived account = " + account); 
      } 
      else 
      { 
       logger.debug("No account was found for " + accountNum); 
      } 
     } 
     catch (IllegalArgumentException ex) 
     { 
      logger.error("Illegal argument while executing query for subscriber account", 
        ex); 

      throw new WebApplicationException(Response.Status.BAD_REQUEST); 
     } 
     catch (Exception ex) 
     { 
      logger.error("Unexpected exception while executing query for subscriber account", 
        ex); 

      throw new WebApplicationException(Response.Status.INTERNAL_SERVER_ERROR); 
     } 

     logger.debug("Exiting querySubscriberAccount()"); 

     return account; 
    } 

.... snip .... 

} 

provisionService.querySubscriber генерирует исключение, которое перехватывается второе заявление на вылов в методе querySubscriberAccount (мы см. инструкцию журнала в файле). Тем не менее, клиент получает статус 204 вместо ожидаемой ошибки 500.

Я нашел эту проблему, которая похожа на мою: http://java.net/jira/browse/JERSEY-41, но довольно старая и для Джерси 1.3.1. Мы используем версию 1.9.1.

Кто-нибудь еще видел эту проблему и, надеюсь, выяснил, в чем проблема?

ответ

0

Я создал ошибку http://java.net/jira/browse/JERSEY-1062 для этого вопроса. Пожалуйста, подумайте о том, чтобы голосовать за него, если у вас есть та же проблема.

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