Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Обработка ошибок в Spring webflow / 5 сообщений из 5, страница 1 из 1
27.02.2012, 14:01:06
    #37679982
oson
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработка ошибок в Spring webflow
Господа.
Подскажите как поднять exception в Spring web flow.
При апдейте базы в консоли Tomcat появляются например такие exceptions
Код: java
1.
2.
3.
4.
5.
6.
....
Caused by: org.springframework.dao.DataIntegrityViolationException: Could not execute JDBC batch update; ....
.....
Caused by: org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update
....
Caused by: java.sql.BatchUpdateException: Batch entry 0 insert into ROLES (roleName, id) values ('ORDERS_OFFICER', '2') was aborted.  Call getNextException to see the cause.



которые закономерны.
Как их перехватить и поднять в виде ApplicationException, чтобы вывести сообщение на странице?
...
Рейтинг: 0 / 0
27.02.2012, 14:18:25
    #37680038
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработка ошибок в Spring webflow
osonкоторые закономерны.
чем они закономерны?
Оттуда и пляши.
...
Рейтинг: 0 / 0
27.02.2012, 19:29:43
    #37680929
oson
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработка ошибок в Spring webflow
Ну допустим я в MyService вставляю запись в базу с таким же уникальным полем, как там уже есть

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
@Transactional
@Service("adminService")
@Repository
@Transactional
public class JpaAdminService implements AdminService, Serializable

    public void saveRole(Role role) throws ApplicationException
    {
         try
        { 
            em.persist(role);
         }
        catch(Exception e)
        {
            throw new ApplicationException("Please check...", e)
         }
       }



В консоли Tomcat виден стек exceptions
org.springframework.dao.DataIntegrityViolationException
org.hibernate.exception.ConstraintViolationException
java.sql.BatchUpdateException

Но до
catch(Exception e)
{
throw new ApplicationException("Please check...", e)
}

не доходит.

В мануале прочитал, что надо сделать свой типа
SqlExceptionsHandler implements FlowExecutionExceptionHandler
или добавить в определение flow

Код: xml
1.
2.
3.
4.
5.
 <transition on-exception="org.hibernate.exception.ConstraintViolationException" to="failsUpdate">
            <set name="viewScope.guideMessage" value="'Check data please'"/>
        </transition>

 <view-state id="failsUpdate" view="failsUpdate.xhtml"/>



Первое у меня не получилось. Второе (transition on-exception) получилось - переходит на эту страницу. Но сообщение из viewScope не выводит.

Вот как вывести это сообщение в случае SQL эксепшинов типа такого?
...
Рейтинг: 0 / 0
27.02.2012, 19:45:47
    #37680958
oson
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработка ошибок в Spring webflow
Сделал такое изменение

Код: xml
1.
2.
3.
         <transition on-exception="org.hibernate.exception.ConstraintViolationException" to="failsUpdate">
            <set name="flashScope.guideMessage" value="'Check data please'"/>
        </transition>


И убрал перехват exception в сервисе.
Теперь работает
...
Рейтинг: 0 / 0
27.02.2012, 20:26:47
    #37681021
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработка ошибок в Spring webflow
ok.
я так понял, вопрос закрыт.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Обработка ошибок в Spring webflow / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]