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:
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:
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:
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:
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:
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> |