Вопрос 1: Согласно книге, которую я читаю, чтобы узнать, автор EJB сказал, что каждый поиск создает новый сеансовый компонент с отслеживанием состояния. Итак, что я сделал, так это определил метод init() с аннотацией @PostConstruct с оператором sysout. Итак, это необходимо выполнить для каждого экземпляра Stateful bean. Но этого же не происходит. Рассмотрим следующий код
В бине
@Stateful
public class PersonnelModelBean implements PersonnelModelRemote{
@PostConstruct
void init(){
System.out.println("STATEFUL BEAN transforming to Mathod Ready state");
}
}
На стороне клиента
try {
InitialContext context = InitialContextBuilder.getJBOSSInitialContext();
PersonnelModelRemote personnelModel = (PersonnelModelRemote)context.lookup("PersonnelModel/remote");
personnelModel.setPersonKey(new Integer(1));
personnelModel.setPersonName("Naresh");
PersonData person = personnelModel.getPerson();
System.out.println(person);
personnelModel = (PersonnelModelRemote)context.lookup("PersonnelModel/remote");
personnelModel.setPersonKey(new Integer(2));
personnelModel.setPersonName("Pokuri");
person = personnelModel.getPerson();
System.out.println(person);
} catch (NamingException e) {
e.printStackTrace();
}
Вопрос 2: Таким же образом автор сказал, что при вызове аннотированного метода @Remove будет удален компонент, связанный с клиентом, из контейнера. Таким образом, контейнер должен вызывать метод destroy() (который аннотирован @PreDestroy) при удалении компонента. Но этого не происходит. Рассмотрим следующий код
@Stateful
public class PersonnelModelBean implements PersonnelModelRemote{
@Remove
public PersonData getPerson() {
PersonData personData = new PersonData();
personData.setKey(key);
personData.setName(name);
return personData;
}
@PreDestroy
void destroy(){
System.out.println("STATEFUL BEAN transforming to Does not exist state");
}
}
Вопрос 3: я установил 60 секунд в файле standardjboss.xml каталога server/default/conf JBOSS. Я ждал 15 минут, и при выполнении клиентского кода он должен вызвать аннотированный метод @PostConstruct, как сказано в книге. Но этого тоже не происходило.