java io NotSerializableException: service.AdresseService
	
	
		Je suis confronté à cette erreur.
voici le log
	Citation:
	
		
		
			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:
	
| 12
 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:
	
| 12
 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:
	
| 12
 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:
	
| 12
 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:
	
| 12
 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> |