2016-02-21 4 views
0

Я только начал изучать ejb и теперь имею проблемы. Мой EJB кодWildFly EJB UnknownSessionID

@Stateful 
@StatefulTimeout(value=80, unit=TimeUnit.SECONDS) 
public class HelloWorldBean 
    { 
     int i = 0; 
     public int SayHello() 
     { 
      return i++; 
     } 
    } 

Это только для тестирования. Хорошо, таким образом, после 80 секунд я получаю проблемы с WildFly

javax.ejb.NoSuchEJBException: WFLYEJB0168: Could not find EJB with id UnknownSessionID [5156495653657051576570495270526865695251507057526654654868486852] 

1) Я думал, что после 80 сек EJB должна быть удалена, и после обновления страницы я получить новый экземпляр. Или после того, как 80-секундный экземпляр переходит к пассивации (сохранение на жестком диске)?

2) Что это за проблема с UnknownSessionID? Почему WildFly не хочет назначать идентификатор сеансу?

3) С этим примером кода - Почему, если я использую два разных браузера одновременно, у меня есть один и тот же экземпляр? Я думал, что фаза натурального состояния работает как one_bean-to-one_user? Например, в Google Chrome и Firefox я должен начинать с i = 0 и не должен иметь никаких похожих данных между сеансами браузера.

Буду признателен за вашу помощь!

ответ

0

1) В спецификации указано, что удаление произойдет после истечения времени ожидания. Wildfly следует спецификации EJB.
2) Неизвестный идентификатор сеанса - это способ сказать, что компонента не существует.
3) Вы, должно быть, использовали тот же сервлет, чтобы получить доступ к указанному выше коду. Это означает, что вы должны использовать только одного клиента для доступа к компоненту.

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