2016-01-30 1 views
1

Мы используем перехватчик store. В некоторых редких случаях бывает, что этот перехватчик генерирует исключение Session Already Invalidate, а при попытке помещать сообщения об ошибках в сеанс (MessageStoreInterceptor строка: 282).Переопределение перехватчика стоек 2

Я попытался переопределить этот перехватчик и тихо заполнить исключение, и пусть действие будет выполнено.

Это кажется простым, но я не могу найти то, что я должен вернуться, когда происходит исключение (как я получаю следующий перехватчик ?!):

public class MyMessageStoreInterceptor extends MessageStoreInterceptor { 

    @Override 
    public String intercept(ActionInvocation invocation) throws Exception { 

     try{ 
      return super.intercept(invocation); 
     }catch(IllegalStateException ex){ 
      return ??; 
     } 

    }  
} 

ответ

1

Если вы хотите, чтобы добраться до следующего перехватчика вас должен вернуть invocation.invoke(). Он возвращает результат действия. Если вы не получили результат из-за исключения и хотите продолжить вызов действия, вы должны вернуть свой собственный результат или один из предопределенных результатов, таких как SUCCESS или ERROR.

@Override 
public String intercept(ActionInvocation invocation) throws Exception { 

    try{ 
     return super.intercept(invocation); 
    }catch(IllegalStateException ex){ 
     return Action.ERROR; 
    } 

}  

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

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