problème de session factory
Bonjour,
Je développe une application web avec les outils suivants :
-RAD,
-WebSphere 6.0,
-Hibernate 3,
-DB2.
Voici mon erreur :
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
|
[28/07/09 10:30:14:855 CEST] 0000003c ServletWrappe E SRVE0068E: Impossible d'appeler la méthode service() sur le servlet ServletAgence. Exception : java.lang.ExceptionInInitializerError
at com.previfrance.persistance.HibernateUtil.<clinit>(HibernateUtil.java:20)
at com.previfrance.servlet.ServletAgence.service(ServletAgence.java:22)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1212)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:629)
at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:2841)
at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:220)
at com.ibm.ws.webcontainer.VirtualHost.handleRequest(VirtualHost.java:204)
at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:1681)
at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:77)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:421)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:367)
at com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:94)
at com.ibm.ws.tcp.channel.impl.WorkQueueManager.requestComplete(WorkQueueManager.java:548)
at com.ibm.ws.tcp.channel.impl.WorkQueueManager.attemptIO(WorkQueueManager.java:601)
at com.ibm.ws.tcp.channel.impl.WorkQueueManager.workerRun(WorkQueueManager.java:934)
at com.ibm.ws.tcp.channel.impl.WorkQueueManager$Worker.run(WorkQueueManager.java:1021)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1332)
Caused by: java.lang.NoClassDefFoundError: net/sf/cglib/proxy/Enhancer
at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.getProxyFactory(CGLIBLazyInitializer.java:117)
at org.hibernate.proxy.pojo.cglib.CGLIBProxyFactory.postInstantiate(CGLIBProxyFactory.java:43)
at org.hibernate.tuple.entity.PojoEntityTuplizer.buildProxyFactory(PojoEntityTuplizer.java:162)
at org.hibernate.tuple.entity.AbstractEntityTuplizer.<init>(AbstractEntityTuplizer.java:135)
at org.hibernate.tuple.entity.PojoEntityTuplizer.<init>(PojoEntityTuplizer.java:55)
at org.hibernate.tuple.entity.EntityEntityModeToTuplizerMapping.<init>(EntityEntityModeToTuplizerMapping.java:56)
at org.hibernate.tuple.entity.EntityMetamodel.<init>(EntityMetamodel.java:302)
at org.hibernate.persister.entity.AbstractEntityPersister.<init>(AbstractEntityPersister.java:434)
at org.hibernate.persister.entity.SingleTableEntityPersister.<init>(SingleTableEntityPersister.java:109)
at org.hibernate.persister.PersisterFactory.createClassPersister(PersisterFactory.java:55)
at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:226)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1300)
at com.previfrance.persistance.HibernateUtil.<clinit>(HibernateUtil.java:15)
... 17 more
[28/07/09 10:30:14:980 CEST] 0000003c WebApp E SRVE0026E: [Erreur de servlet]-[ServletAgence]: java.lang.ExceptionInInitializerError
at com.previfrance.persistance.HibernateUtil.<clinit>(HibernateUtil.java:20)
at com.previfrance.servlet.ServletAgence.service(ServletAgence.java:22)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1212)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:629)
at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:2841)
at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:220)
at com.ibm.ws.webcontainer.VirtualHost.handleRequest(VirtualHost.java:204)
at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:1681)
at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:77)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:421)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:367)
at com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:94)
at com.ibm.ws.tcp.channel.impl.WorkQueueManager.requestComplete(WorkQueueManager.java:548)
at com.ibm.ws.tcp.channel.impl.WorkQueueManager.attemptIO(WorkQueueManager.java:601)
at com.ibm.ws.tcp.channel.impl.WorkQueueManager.workerRun(WorkQueueManager.java:934)
at com.ibm.ws.tcp.channel.impl.WorkQueueManager$Worker.run(WorkQueueManager.java:1021)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1332)
Caused by: java.lang.NoClassDefFoundError: net/sf/cglib/proxy/Enhancer
at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.getProxyFactory(CGLIBLazyInitializer.java:117)
at org.hibernate.proxy.pojo.cglib.CGLIBProxyFactory.postInstantiate(CGLIBProxyFactory.java:43)
at org.hibernate.tuple.entity.PojoEntityTuplizer.buildProxyFactory(PojoEntityTuplizer.java:162)
at org.hibernate.tuple.entity.AbstractEntityTuplizer.<init>(AbstractEntityTuplizer.java:135)
at org.hibernate.tuple.entity.PojoEntityTuplizer.<init>(PojoEntityTuplizer.java:55)
at org.hibernate.tuple.entity.EntityEntityModeToTuplizerMapping.<init>(EntityEntityModeToTuplizerMapping.java:56)
at org.hibernate.tuple.entity.EntityMetamodel.<init>(EntityMetamodel.java:302)
at org.hibernate.persister.entity.AbstractEntityPersister.<init>(AbstractEntityPersister.java:434)
at org.hibernate.persister.entity.SingleTableEntityPersister.<init>(SingleTableEntityPersister.java:109)
at org.hibernate.persister.PersisterFactory.createClassPersister(PersisterFactory.java:55)
at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:226)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1300)
at com.previfrance.persistance.HibernateUtil.<clinit>(HibernateUtil.java:15)
... 17 more
[28/07/09 10:30:14:855 CEST] 0000003c SystemErr R Initial SessionFactory creation failed.java.lang.NoClassDefFoundError: net/sf/cglib/proxy/Enhancer
[28/07/09 10:30:14:855 CEST] 0000003c SystemErr R java.lang.NoClassDefFoundError: net/sf/cglib/proxy/Enhancer
at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.getProxyFactory(CGLIBLazyInitializer.java:117)
at org.hibernate.proxy.pojo.cglib.CGLIBProxyFactory.postInstantiate(CGLIBProxyFactory.java:43)
at org.hibernate.tuple.entity.PojoEntityTuplizer.buildProxyFactory(PojoEntityTuplizer.java:162)
at org.hibernate.tuple.entity.AbstractEntityTuplizer.<init>(AbstractEntityTuplizer.java:135)
at org.hibernate.tuple.entity.PojoEntityTuplizer.<init>(PojoEntityTuplizer.java:55)
at org.hibernate.tuple.entity.EntityEntityModeToTuplizerMapping.<init>(EntityEntityModeToTuplizerMapping.java:56)
at org.hibernate.tuple.entity.EntityMetamodel.<init>(EntityMetamodel.java:302)
at org.hibernate.persister.entity.AbstractEntityPersister.<init>(AbstractEntityPersister.java:434)
at org.hibernate.persister.entity.SingleTableEntityPersister.<init>(SingleTableEntityPersister.java:109)
at org.hibernate.persister.PersisterFactory.createClassPersister(PersisterFactory.java:55)
at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:226)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1300)
at com.previfrance.persistance.HibernateUtil.<clinit>(HibernateUtil.java:15)
at com.previfrance.servlet.ServletAgence.service(ServletAgence.java:22)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1212)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:629)
at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:2841)
at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:220)
at com.ibm.ws.webcontainer.VirtualHost.handleRequest(VirtualHost.java:204)
at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:1681)
at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:77)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:421)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:367)
at com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:94)
at com.ibm.ws.tcp.channel.impl.WorkQueueManager.requestComplete(WorkQueueManager.java:548)
at com.ibm.ws.tcp.channel.impl.WorkQueueManager.attemptIO(WorkQueueManager.java:601)
at com.ibm.ws.tcp.channel.impl.WorkQueueManager.workerRun(WorkQueueManager.java:934)
at com.ibm.ws.tcp.channel.impl.WorkQueueManager$Worker.run(WorkQueueManager.java:1021)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1332)
[28/07/09 10:30:14:855 CEST] 0000003c SystemErr R at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.getProxyFactory(CGLIBLazyInitializer.java:117)
[28/07/09 10:30:14:855 CEST] 0000003c SystemErr R at org.hibernate.proxy.pojo.cglib.CGLIBProxyFactory.postInstantiate(CGLIBProxyFactory.java:43)
[28/07/09 10:30:14:855 CEST] 0000003c SystemErr R at org.hibernate.tuple.entity.PojoEntityTuplizer.buildProxyFactory(PojoEntityTuplizer.java:162)
[28/07/09 10:30:14:855 CEST] 0000003c SystemErr R at org.hibernate.tuple.entity.AbstractEntityTuplizer.<init>(AbstractEntityTuplizer.java:135)
[28/07/09 10:30:14:855 CEST] 0000003c SystemErr R at org.hibernate.tuple.entity.PojoEntityTuplizer.<init>(PojoEntityTuplizer.java:55)
[28/07/09 10:30:14:855 CEST] 0000003c SystemErr R at org.hibernate.tuple.entity.EntityEntityModeToTuplizerMapping.<init>(EntityEntityModeToTuplizerMapping.java:56)
[28/07/09 10:30:14:855 CEST] 0000003c SystemErr R at org.hibernate.tuple.entity.EntityMetamodel.<init>(EntityMetamodel.java:302)
[28/07/09 10:30:14:855 CEST] 0000003c SystemErr R at org.hibernate.persister.entity.AbstractEntityPersister.<init>(AbstractEntityPersister.java:434)
[28/07/09 10:30:14:855 CEST] 0000003c SystemErr R at org.hibernate.persister.entity.SingleTableEntityPersister.<init>(SingleTableEntityPersister.java:109)
[28/07/09 10:30:14:855 CEST] 0000003c SystemErr R at org.hibernate.persister.PersisterFactory.createClassPersister(PersisterFactory.java:55)
[28/07/09 10:30:14:855 CEST] 0000003c SystemErr R at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:226)
[28/07/09 10:30:14:855 CEST] 0000003c SystemErr R at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1300)
[28/07/09 10:30:14:855 CEST] 0000003c SystemErr R at com.previfrance.persistance.HibernateUtil.<clinit>(HibernateUtil.java:15)
[28/07/09 10:30:14:855 CEST] 0000003c SystemErr R at com.previfrance.servlet.ServletAgence.service(ServletAgence.java:22)
[28/07/09 10:30:14:855 CEST] 0000003c SystemErr R at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
[28/07/09 10:30:14:855 CEST] 0000003c SystemErr R at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1212)
[28/07/09 10:30:14:855 CEST] 0000003c SystemErr R at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:629)
[28/07/09 10:30:14:855 CEST] 0000003c SystemErr R at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:2841)
[28/07/09 10:30:14:855 CEST] 0000003c SystemErr R at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:220)
[28/07/09 10:30:14:855 CEST] 0000003c SystemErr R at com.ibm.ws.webcontainer.VirtualHost.handleRequest(VirtualHost.java:204)
[28/07/09 10:30:14:855 CEST] 0000003c SystemErr R at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:1681)
[28/07/09 10:30:14:855 CEST] 0000003c SystemErr R at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:77)
[28/07/09 10:30:14:855 CEST] 0000003c SystemErr R at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:421)
[28/07/09 10:30:14:855 CEST] 0000003c SystemErr R at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:367)
[28/07/09 10:30:14:855 CEST] 0000003c SystemErr R at com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:94)
[28/07/09 10:30:14:855 CEST] 0000003c SystemErr R at com.ibm.ws.tcp.channel.impl.WorkQueueManager.requestComplete(WorkQueueManager.java:548)
[28/07/09 10:30:14:855 CEST] 0000003c SystemErr R at com.ibm.ws.tcp.channel.impl.WorkQueueManager.attemptIO(WorkQueueManager.java:601)
[28/07/09 10:30:14:855 CEST] 0000003c SystemErr R at com.ibm.ws.tcp.channel.impl.WorkQueueManager.workerRun(WorkQueueManager.java:934)
[28/07/09 10:30:14:855 CEST] 0000003c SystemErr R at com.ibm.ws.tcp.channel.impl.WorkQueueManager$Worker.run(WorkQueueManager.java:1021)
[28/07/09 10:30:14:855 CEST] 0000003c SystemErr R at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1332) |
Hibernate.cfg.xml :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.driver_class">com.ibm.as400.access.AS400JDBCDriver</property>
<property name="hibernate.connection.password">SQLI</property>
<property name="hibernate.connection.url">jdbc:as400:PROD/*****</property>
<property name="hibernate.connection.username">***</property>
<property name="hibernate.dialect">org.hibernate.dialect.DB2400Dialect</property>
<property name="hibernate.show_sql">true</property>
<property name="current_session_context_class">thread</property>
<!-- Mapping fonctionnel -->
<mapping resource="Agence.hbm.xml" />
</session-factory>
</hibernate-configuration> |
HibernateUtil :
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
|
public class HibernateUtil {
public static final SessionFactory sessionFactory;
static {
try {
// Création de la SessionFactory à partir de hibernate.cfg.xml
sessionFactory = new Configuration().configure().buildSessionFactory();
} catch (Throwable ex) {
// Make sure you log the exception, as it might be swallowed
System.err.println("Initial SessionFactory creation failed." + ex);
ex.printStackTrace();
throw new ExceptionInInitializerError(ex);
}
}
public static final ThreadLocal session = new ThreadLocal();
public static SessionFactory getSessionFactory() {
return sessionFactory;
}
public static void closeSession()
throws HibernateException {
Session s = (Session) session.get();
session.set(null);
if (s != null)
s.close();
}
public static Session currentSession() {
Session s = (Session) session.get();
// Open a new Session, if this Thread has none yet
if (s == null) {
s = sessionFactory.openSession();
session.set(s);
}
return s;
} |
Ma servlet :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
public class ServletAgence extends HttpServlet {
private AgenceBO srv=null;
public void service(HttpServletRequest request,HttpServletResponse response)throws ServletException, IOException {
try {
HibernateUtil.currentSession().beginTransaction();
srv = new AgenceBO();
List agence=srv.listerAgence();
System.out.println(agence);
response.sendRedirect(request.getContextPath()+"/listeAgence.jsp");
} catch (Exception ex) {
throw new ServletException(ex);
}
}
} |
Bean :
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
|
public class AgenceBean {
private static final long serialVersionUID = 1L;
private Integer idBureau;
private String nom;
private String adresse;
private String complement;
private Integer codePostal;
private String ville;
private String tel;
private String email;
private String horairesOuverture;
public Integer getIdBureau() {
return idBureau;
}
public void setIdBureau(Integer idBureau) {
this.idBureau = idBureau;
}
public String getNom() {
return nom;
}
public void setNom(String nom) {
this.nom = nom;
}
public String getAdresse() {
return adresse;
}
public void setAdresse(String adresse) {
this.adresse = adresse;
}
public String getComplement() {
return complement;
}
public void setComplement(String complement) {
this.complement = complement;
}
public Integer getCodePostal() {
return codePostal;
}
public void setCodePostal(Integer codePostal) {
this.codePostal = codePostal;
}
public String getVille() {
return ville;
}
public void setVille(String ville) {
this.ville = ville;
}
public String getTel() {
return tel;
}
public void setTel(String tel) {
this.tel = tel;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getHorairesOuverture() {
return horairesOuverture;
}
public void setHorairesOuverture(String horairesOuverture) {
this.horairesOuverture = horairesOuverture;
}
} |
DAO :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
public class AgenceDAO implements IAgenceDAO {
public List findAll() {
// TODO Module de remplacement de méthode auto-généré
try{
session.beginTransaction();
Query query=session.createQuery("from com.previfrance.bean.AgenceBean agence");
List list = query.list();
Iterator it = list.iterator();
while(it.hasNext())
{
AgenceBean contact = (AgenceBean)it.next();
System.out.println(contact.getNom());
}
return list;
}
catch(HibernateException e){
throw new RuntimeException("Problème de configuration : "
+ e.getMessage(), e);
}
} |
Et pour finir BO :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
public class AgenceBO {
private AgenceDAO agenceDAO;
private Session session=HibernateUtil.currentSession();
public AgenceBO() {
// TODO Module de remplacement de constructeur auto-généré
super();
agenceDAO=new AgenceDAO(session);
}
public List listerAgence() {
return agenceDAO.findAll();
}
} |
Je ne sais pas du tout comment faire pour corriger cette erreur.
Merci