Slt à tous,

je suis tout nouveau dans le monde JSF avec Hibernate. Je suis entrain de tester une application et je recois l'erreur au bas de cette page.

J'ai fouillé le forum espérant trouver une solution à mon problème, malheursement sans succès. Qqn aurait-il une idée?

Merci d'avance.

Rod

Voici l'erreur:
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
2010-05-18 15:28:20,390 SEVERE [javax.enterprise.resource.webcontainer.jsf.lifecycle] (http-localhost%2F127.0.0.1-8089-1) JSF1054: (Phase ID: INVOKE_APPLICATION 5, View ID: /pages/login.jsp) Exception thrown during phase execution: javax.faces.event.PhaseEvent[source=com.sun.faces.lifecycle.LifecycleImpl@4f9c0c]
2010-05-18 15:28:20,390 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[localhost].[/OnlineBanking].[Faces Servlet]] (http-localhost%2F127.0.0.1-8089-1) Servlet.service() for servlet Faces Servlet threw exception
java.lang.NoClassDefFoundError: Could not initialize class bank.hibernate.HibernateUtil
	at bank.hibernate.HibernateFilter.doFilter(HibernateFilter.java:58)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
	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:235)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:190)
	at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92)
	at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)
	at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:829)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:598)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
	at java.lang.Thread.run(Unknown Source)
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
public final class HibernateFilter implements Filter {
 
	   static Log logger = LogFactory.getLog(HibernateFilter.class);
 
	   /**
            * @see javax.servlet.Filter.destroy()
            */
	   public void destroy() {
	   }
	   /**
            * @see javax.servlet.Filter.init()
            */
	   public void init(FilterConfig arg0) throws ServletException {
	   }
 
	   /**
            * Time the processing that is performed by all subsequent filters in the
            * current filter stack, including the ultimately invoked servlet.
            * @param request The servlet request we are processing
            * @param result  The servlet response we are creating
            * @param chain   The filter chain we are processing
            * @exception IOException      if an input/output error occurs
            * @exception ServletException if a servlet error occurs
            */
	   public void doFilter(ServletRequest request, ServletResponse response,
	         FilterChain chain) throws IOException, ServletException {
	      try {
	         // Pass control on to the next filter
	         chain.doFilter(request, response);
	      } finally {
	         try {
	            HibernateUtil.closeSession();
	            logger.debug("session closed!");
	         } catch (Exception e) {
	            logger.warn("closeSession failed! : " + e.getMessage());
	         }
	      }
	   }
 
	   /**
            * Return a String representation of this object.
            */
	   public String toString() {
	      return this.getClass().getName();
	   }
	}
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
public class HibernateUtil {
 
    private static Log log = LogFactory.getLog(HibernateUtil.class);
 
    private static Configuration configuration;
    private static SessionFactory sessionFactory;
    private static final ThreadLocal<Session> threadSession = new ThreadLocal<Session>();
    private static final ThreadLocal<Session> threadTransaction = new ThreadLocal<Session>();
 
 
    // Create the initial SessionFactory from the default configuration files
    static {
		try {
			configuration = new Configuration();
			sessionFactory = configuration.configure().buildSessionFactory();
			// We could also let Hibernate bind it to JNDI:
			// configuration.configure().buildSessionFactory()
		} catch (Throwable ex) {
			// We have to catch Throwable, otherwise we will miss
			// NoClassDefFoundError and other subclasses of Error
			log.error("Building SessionFactory failed.", ex);
			throw new ExceptionInInitializerError(ex);
		}
	}
 
    /**
         * Returns the SessionFactory used for this static class.
         * 
         * @return SessionFactory
         */
    public static SessionFactory getSessionFactory() {
        /* Instead of a static variable, use JNDI:
        SessionFactory sessions = null;
        try {
            Context ctx = new InitialContext();
            String jndiName = "java:hibernate/HibernateFactory";
            sessions = (SessionFactory)ctx.lookup(jndiName);
        } catch (NamingException ex) {
            throw new RuntimeException(ex);
        }
        return sessions;
        */
        return sessionFactory;
    }
 
    /**
     * Retrieves the current Session local to the thread.
     * <p/>
     * If no Session is open, opens a new Session for the running thread.
     *
     * @return Session
     */
    public static Session getSession() {
         // With CMT, this should return getSessionFactory().getCurrentSession() and do nothing else
        Session s = (Session) threadSession.get();
        if (s == null) {
            log.debug("Opening new Session for this thread.");
            s = getSessionFactory().openSession();
            threadSession.set(s);
        }
        return s;
    }
 
    /**
     * Closes the Session local to the thread.
     */
    public static void closeSession() {
              // Would be written as a no-op in an EJB container with CMT
            Session s = (Session) threadSession.get();
            threadSession.set(null);
            if (s != null && s.isOpen()) {
                log.debug("Closing Session of this thread.");
                s.close();
            }
    }
 
    /**
     * Start a new database transaction.
     */
    public static void beginTransaction() {
          // Would be written as a no-op in an EJB container with CMT
        Transaction tx = (Transaction) threadTransaction.get();
            if (tx == null) {
                log.debug("Starting new database transaction in this thread.");
                tx = getSession().beginTransaction();
                threadTransaction.set((Session) tx);
            }
    }
 
    /**
     * Commit the database transaction.
     */
    public static void commitTransaction() {
          // Would be written as a no-op in an EJB container with CMT
        Transaction tx = (Transaction) threadTransaction.get();
        try {
            if ( tx != null && !tx.wasCommitted()
                            && !tx.wasRolledBack() ) {
                log.debug("Committing database transaction of this thread.");
                tx.commit();
            }
            threadTransaction.set(null);
        } catch (HibernateException ex) {
            rollbackTransaction();
            throw ex;
        }
    }
 
    /**
     * Rollback the database transaction.
     */
    public static void rollbackTransaction() {
          // Would be written as a no-op in an EJB container with CMT (maybe setRollBackOnly...)
        Transaction tx = (Transaction) threadTransaction.get();
        try {
            threadTransaction.set(null);
            if ( tx != null && !tx.wasCommitted() && !tx.wasRolledBack() ) {
                log.debug("Tyring to rollback database transaction of this thread.");
                tx.rollback();
            }
        } finally {
            closeSession();
        }
    }
 
}