2015-07-20 1 views
2

Я новичок в Rest-API и пытается выяснить проверки сеанса. Для моего приложения у меня есть концепция тайм-аута сеанса и сеанса. Если сеанс пользователя недействителен или тайм-аут, я проверяю сеанс и возвращаю сообщение об ошибке. Код указан ниже.Проверка сеанса в Rest-API [java.lang.IllegalStateException: невозможно создать сеанс после того, как ответ был зафиксирован]

@GET 
@Path("/getScreenDetails") 
@Produces(MediaType.APPLICATION_JSON) 
public Response getScreenDetails(@BeanParam RequestBean requestBean) { 

    HttpSession currentSession = (HttpSession) InitialiseHelper 
      .getSessionMap().get(
        requestBean.getRequest().getSession().getId()); 
    if (currentSession == null) { 
     // user has not logged in needs to throw and error. 
     String errorMessage = "Invalid session "; 
     return ResponseHelper.getErrorResponse(103, errorMessage, 
       AAConstants.HTTP_UNAUTHORIZED_401); 
    } 
    //Do operations: 
    } 

Но я получаю

[java.lang.IllegalStateException: Cannot create a session after the response has been committed]

с первопричиной

java.lang.IllegalStateException: Cannot create a session after the response has been committed error.

Я получаю ошибку IllegalStateException в первой строке.

HttpSession currentSession = (HttpSession) InitialiseHelper 
      .getSessionMap().get(
        requestBean.getRequest().getSession().getId()); 

Просьба помочь.

ответ

0

Как правило, вы не можете начать сеанс, когда контент уже отправлен запрашивающему.

Это означает, что если вы намерены использовать сеанс, запустите их как можно скорее и перед тем, как вы выведете что-либо обратно пользователю. Учитывая, что мы не можем читать остальную часть вашего класса, становится все труднее помочь дальше. Если возможно, отредактируйте свой вопрос с помощью метода ответа, который вы используете.

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

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