2014-12-11 15 views
3

Как я могу позволить текущему приложению Spring игнорировать определенный класс исключения (скажем, NoUIException или OptimisticLockingException) в пользовательском интерфейсе, но не влиять на ведение журнала? Я знаю, что org.springframework.web.servlet.handler.SimpleMappingExceptionResolver может отображать определенное исключение с запросом пользовательского интерфейса, но не знает, как избежать его в пользовательском интерфейсе.Как игнорировать конкретное исключение из пользовательского интерфейса?

UPDATE

я сделать некоторые исследования с веб-сайта Spring и прийти с последующим решением, я пытался, но он не работает

@ControllerAdvice 
public class ExceptionControllerAdvice { 

    @ResponseStatus(value = HttpStatus.CONFLICT) 
    @ExceptionHandler(org.apache.openjpa.persistence.OptimisticLockException.class) 
    public void optimisticLockExceptionHandler() { 
     // do nothing, just ignore the exception 
     logger.info("yeah...no exception I hope !!!"); 
    } 
} 

UPDATE2

Я не уверен, если это уместно но у меня есть регистр SimpleMappingExceptionResolver в контексте конфигурации mvc

<bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver" p:defaultErrorView="uncaughtException"> 
    <property name="exceptionMappings"> 
     <props> 
      <prop key=".DataAccessException">dataAccessFailure</prop> 
      <prop key=".AccessDeniedException">accessDenied</prop> 
     </props> 
    </property> 
</bean> 

Есть ли способ SimpleMappingExceptionResolver может иметь конфликт с controller advisor?

ответ

0

обработчик исключений вызывается с помощью HandlerExceptionResolver под названием ExceptionHandlerExceptionResolver.

Убедитесь, что вы правильно настроили сканирование компонентов; пакет, содержащий ваши советы, должен быть отсканирован. Не забудьте включить аннотации.

В Spring XML:

<context:component-scan base-package="com.foo.bar" /> 
<mvc:annotation-driven> 

Весной загрузки, использует @ComponentScan (http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/context/annotation/ComponentScan.html). Затем вам необходимо расширить класс WebMvcConfigurerAdapter и указать свои разрешения. Эти преобразователи помещаются в HandlerExceptionResolverComposite. Первый резольвер, который возвращает непустую модель и видит выигрыши.

0

Если вы не хотите отображать страницу с ошибкой для конкретного исключения, то поймайте это исключение с блоком catch и не перебрасывайте исключение для конкретного приложения.