Je suis confronté à cette erreur.
voici le log
27 déc. 2010 07:46:53 org.apache.catalina.core.ApplicationContext log
INFO: Destroying Spring FrameworkServlet 'dispatcher'
27 déc. 2010 07:46:54 org.apache.catalina.session.StandardSession writeObject
ATTENTION: Impossible de sérialiser l'attribut de session personnes pour la session A870453E608FE5BC4794499410510958
java.io.NotSerializableException: service.AdresseService
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1156)
at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1509)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1474)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
at org.apache.catalina.session.StandardSession.writeObject(StandardSession.java:1546)
at org.apache.catalina.session.StandardSession.writeObjectData(StandardSession.java:989)
at org.apache.catalina.session.StandardManager.doUnload(StandardManager.java:517)
at org.apache.catalina.session.StandardManager.unload(StandardManager.java:463)
at org.apache.catalina.session.StandardManager.stop(StandardManager.java:667)
at org.apache.catalina.core.StandardContext.stop(StandardContext.java:4611)
at org.apache.catalina.core.StandardContext.reload(StandardContext.java:3222)
at org.apache.catalina.manager.ManagerServlet.reload(ManagerServlet.java:943)
at org.apache.catalina.manager.ManagerServlet.doGet(ManagerServlet.java:361)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:199)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:558)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:859)
at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:579)
at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1555)
at java.lang.Thread.run(Thread.java:619)
27 déc. 2010 07:46:57 org.apache.catalina.core.ApplicationContext log
INFO: Closing Spring root WebApplicationContext
27 déc. 2010 07:47:25 org.apache.catalina.core.ApplicationContext log
INFO: Initializing Spring root WebApplicationContext
27 déc. 2010 07:50:20 org.apache.catalina.core.ApplicationContext log
INFO: Initializing Spring FrameworkServlet 'dispatcher'
Le code qui pose problème
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
public class PersonneFamBean extends  messageBean implements Serializable  {
 
  public void chargerAdrcombo() {
        current_adresse = this.pers.getAdresse().getId() + "-" + this.pers.getAdresse().getPays()+ "-" + this.pers.getAdresse().getVille()+ "-" + this.pers.getAdresse().getAdr1();
    }
 
}
la classe service
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
package service;
 
/**
 *
 * @author Root
 */
import Entity.Adresse;
import dao.IDao;
//import service.IService;
import java.util.List;
 
public class AdresseService implements IService {
   private IDao adrDao;
 
      public Object find(Object id){
         return adrDao.find(id);
      }
 
      public List finds(Object obj){
          return adrDao.finds(obj);
      }
     /*public Object findByLogin(String login){  //***************
       return adrDao.findByLogin(login);
     }
 
     public List<Adresse> findByName(String nom){  //***************
       return adrDao.findByName(nom);
    }*/
 
   public void save(Object obj) {
      Adresse o = (Adresse) obj;
      adrDao.save(o);
   }
 
   public void update(Object obj) {
      Adresse o = (Adresse) obj;
      adrDao.update(o);
   }
 
   public void delete(Object obj) {
      Adresse o = (Adresse) obj;
      adrDao.delete(o);
   }
 
   public List findAll() {
      return adrDao.findAll();
   }
 
   public IDao getAdrDao() {
      return adrDao;
   }
 
   public void setAdrDao(IDao adrDao) {
      this.adrDao = adrDao;
   }
 
 
}
la classe dao

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
package dao;
 
/**
 *
 * @author Root
 */
import Entity.Occupation;
import Entity.Adresse;
import Entity.Personne;
import java.util.ArrayList;
import java.util.List;
import org.hibernate.Criteria;
import org.hibernate.criterion.*;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
 
public class AdresseDao extends HibernateDaoSupport implements IDao {
 
     public Adresse find(Object id){
       Adresse adr = null;
 
       long code = 0;
       try {
            code = Long.parseLong(id.toString());
       } catch (NumberFormatException npe) {
            // ignore - not an id, really is a username
       }
 
       if (code != 0) {
          return (Adresse) getHibernateTemplate().get(Adresse.class, new Long(code));
       }
 
       List adresses = getHibernateTemplate().find("from Adresse a where a.adr1 + ' ' + a.adr2 + ' ' + a.adr3 like :modele","modele","%"+id.toString()+"%");
 
       if ((adresses != null) && (adresses.size() > 0)) {
            adr = (Adresse) adresses.get(0);
       }
 
       if (adr == null) {
            //log.warn("uh oh, user not found...");
            throw new DaoException("Adresse '" + id.toString() +"' not found in database!",1);
       }
       return adr;
          //return (Adresse) getHibernateTemplate().get(Adresse.class,Long.parseLong(id.toString()));
      };
 
      public List finds(Object obj){
       Adresse adr = null;
       long code = 0;
 
       if (obj.getClass().equals(Personne.class)){
          Personne p = (Personne) obj;
          // trois methodes pour renvoyer la liste des activités liées à la personne p
	  // 1 - List lesB      = getHibernateTemplate().find("select b from B b, A a where a in elements(b.lesA) and a.id="+id);
	  //List activites = getHibernateTemplate().find("select a from Adresse a, Personne p where p in elements(a.personnes) and p.matricule=" + p.getMatricule());
          // 2 - List lesB = a.getLesB(); c'est cette methode qu'on utilise ici
          List adresses = new java.util.ArrayList();
          adresses.add(p.getAdresse());
          // 3 - DetachedCriteria detachedCriteria = DetachedCriteria.forClass(B.class);
          //     detachedCriteria.createcriteria("lesA").add(Restrictions.eq("id",id));
          //     List lesB = getHibernateTemplate().findByCriteria(detachedCriteria);
 
          return adresses;
       }
       //else if (obj.getClass().equals(Integer.class)){}
 
       try {
            code = Long.parseLong(obj.toString());
       } catch (NumberFormatException npe) {
            // ignore - not an id, really is a username
       }
 
       if (code != 0) {
          List adresses = new java.util.ArrayList();
          adresses.add((Adresse) getHibernateTemplate().get(Adresse.class, new Long(code))); 
          return adresses;
       }
 
       List adresses = getHibernateTemplate().find("from Adresse a where a.adr1 + ' ' + a.adr2 + ' ' + a.adr3 like :modele","modele","%"+obj.toString()+"%");
 
       if ((adresses != null) && (adresses.size() > 0)) {
            adr = (Adresse) adresses.get(0);
       }
 
       if (adr == null) {
            //log.warn("uh oh, user not found...");
            throw new DaoException("Adresse '" + obj.toString() +"' not found in database!",1);
       }
       return adresses;
       //return null;
      }
     /*public Adresse findByLogin(String login){
       //Occupation o = (Occupation) getHibernateTemplate().find("from Occupation o where o.login=?",login);
       //return o.getAdresse();
       Criteria criteria = getSession().createCriteria(Occupation.class);
       criteria.add(Expression.eq("user.username",login));
       Occupation o = (Occupation)criteria.uniqueResult();
       return o.getPersonne().getAdresse();
     }
 
     public List<Adresse> findByName(String nom){ 
       //return getHibernateTemplate().find("from Adresse p where p.nom + ' ' + p.prenom like ?","%"+nom+"%");
       return getHibernateTemplate().findByNamedParam("select p from Adresse p where p.adr1 + ' ' + p.adr2 + ' ' + p.adr3 like :modele","modele","%"+nom+"%");
    }*/
 
 
    public void save(Object obj) {
      Adresse o = (Adresse) obj;
      if (o == null) {
	throw new DaoException(30);
      }
      this.getHibernateTemplate().save(o);
   }
 
   public void update(Object obj) {
      Adresse o = (Adresse) obj;
      if (o == null) {
	throw new DaoException(30);
      }
      this.getHibernateTemplate().update(o);
   }
 
   public void delete(Object obj) {
      Adresse o = (Adresse) obj;
      if (o == null) {
	throw new DaoException(30);
      }
      this.getHibernateTemplate().delete(o);
   }
 
   public List findAll() {
      return (List) this.getHibernateTemplate().loadAll(Adresse.class);
   }
 
 
}
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
package dao;
 
 
import java.util.List;
 
/**
 *
 * @author Root
 */
public interface IDao  {
    public Object find(Object id);
    public List finds(Object obj);
    //public Object findByLogin(String id);
    //public List findByName(String id);
    public void save(Object obj);
    public void update(Object obj);
    public void delete(Object obj);
    public List findAll();
}
applicationContext
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
<!--========================= Start of DAO BEANS DEFINITIONS =========================-->
 
    <bean id="adrDao" class="dao.AdresseDao">
        <property name="hibernateTemplate" ref="hibernateTemplate"/>
    </bean>
    <!--========================= Start of SERVICE BEANS DEFINITIONS =========================-->
    <bean id="adrService" class="service.AdresseService">
        <property name="adrDao" ref="adrDao"/>
    </bean>