2012-01-30 57 views
1

204個狀態我有以下資源類的平紋Web服務:球衣:返回而不是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製造方法(第二catch語句,我們捕獲的異常請參閱文件中的日誌語句)。但是,客戶端正在接收204狀態,而不是預期的500錯誤。

我發現這個問題,這是與我相似:http://java.net/jira/browse/JERSEY-41但很舊和新澤西1.3.1。我們正在使用版本1.9.1。

有其他人看到這個問題,希望能想出的問題是什麼?

回答