J'ai une application Web que je suis en train de passer de Sun Application Server V9 à GlassFish V2.1.1Glassfish 2.1.1 - Les beans session appellent à plusieurs reprises init() et destroy()
J'utilise Netbeans 6.0.1 pour développer l'application, et il utilise JSP, SessionBeans et JDBC pour se connecter à MySQL.
J'ai bien progressé et je peux compiler et déployer l'application. à Glassfish OK. L'application démarre et je me dirige vers ma page de connexion, où je peux me connecter OK.
Cependant, je peux voir que tous mes SessionBeans appellent à plusieurs reprises les méthodes init() et destroy() à mesure que chaque page JSP est rendue.
Ma session Bean étend AbstractSessionBean
public class SessionBean1 extends AbstractSessionBean {
En utilisant Netbeans outil de débogage je traqué les méthodes méthode qui appelle la destroy() et init() LifecycleListener.attributeReplaced (événement HttpSessionBindingEvent) sur mes AbstractSessionBeans
public void attributeReplaced(HttpSessionBindingEvent event) {
// If the old value is an AbstractSessionBean, notify it
Object value = event.getValue();
if ((value != null) && (value instanceof AbstractSessionBean)) {
((AbstractSessionBean) value).destroy();
}
// If the new value is an AbstractSessionBean, notify it
value = event.getSession().getAttribute(event.getName());
if ((value != null) && (value instanceof AbstractSessionBean)) {
((AbstractSessionBean) value).init();
}
}
Dans Netbeans 5.5 et Sun application Server V9 la session AbstractSessionBean Beans travail bien et n'ont pas leur init() et destroy() méthodes() appelé tout le temps.
J'ai vérifié que mes beans session se trouvent dans faces-config.xml.
Alors, mon sentiment est que c'est ma configuration de Glassfish 2.1.1 ...
S'il vous plaît pouvez-vous aider?
Merci
P.S.
Juste pour ajouter à cette ....
je peux déployer exactement la même application de Netbeans 6.0.1:
Sun App serveur V9 et il fonctionne très bien avec la méthode init() beans session étant appelée une seule fois lors de la création de la session
Glassfish V2.1.1 et le bean Session init() et la méthode destroy() obtiennent appelé à plusieurs reprises.
Juste pour ajouter à cette .... je peux déployer ** exactement ** la même application de Netbeans 6.0.1: - Sun App serveur V9 et il fonctionne très bien avec la session haricots init (La méthode est appelée une seule fois lors de la création de la session - Glassfish V2.1.1 et le bean session La méthode init() et destroy() obtiennent de façon répétée. – SteveGreenslade