2015-01-30 4 views
0

У меня проблема с жизненным циклом боба, который я не понимаю. У меня есть @SessionScoped фасоль в моей войне:@Stateful и @SessionScoped

@Named 
@SessionScoped 
public class UserBean implements Serializable { 
    @Inject 
    UserServicesLocal userServices; 
    [...] 
} 

затем @Staseful сессионный компонент в EJB части:

@Stateful 
@LocalBean 
@SessionScoped 
@ExcludeDefaultInterceptors 
public class UserServices implements UserServicesLocal, Serializable { 
    [...] 
} 

они играют хорошо, но когда непроверенный исключение генерируется в части EJB СФББ «умирает». Я понимаю, что это ожидаемое поведение, но я не понимаю, как управлять этой ситуацией. Например: пользователь переходит на страницу, где он может загрузить файл xls, загрузить файл, а затем обработать файл с ошибкой по какой-то странной причине. «WeirdReasonException» не пойман, SFSB исчезает, и каждый последующий вызов генерирует «javax.ejb.NoSuchObjectLocalException: EJB не существует». Я знаю, что я должен избегать исключения, которое не было, но если что-то странное прошло, я думаю, что пользователь должен продолжить свою работу. Есть ли способ «заставить» воссоздать SFSB?

Спасибо

+0

Возможный дубликат [Обработка «EJB не существует» или «Невозможно загрузить из BACKUPSTORE FOR Key»] (http://stackoverflow.com/questions/12163045/handling-the-ejb-does-not-exist- или-не может-нагрузки из-backupstore-для-ключа) – kolossus

ответ

0

я принимаю на "SFSB" вы имеете в виду UserServices боб. Если это правильно, я бы не допустил, чтобы bean die die - я обернул часть, которая могла бы выставить исключение, которое вы могли бы восстановить из блока try/catch, и поймать RuntimeException (а не исключение, кстати). Запишите исключение и верните то, что пользовательский интерфейс может интерпретировать как «обработка вашего ввода не удалась».

Невозможно поймать «Исключение», если вы можете справиться с этим. Большая часть моего кода выделяет исключение на уровне обработчика пользовательского интерфейса, поэтому приложение не умирает, если что-то неожиданное происходит в недрах кода.

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