Problema: javax.servlet.ServletException

Pessoal,

estou desenvolvendo um sistema usando JSF, MyFaces, Tomahawk e Hibernate.
O erro que recebo na página é o seguinte: [quote]HTTP Status 500 -


type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: Filter execution threw an exception

root cause

java.lang.NoClassDefFoundError: Could not initialize class br.com.acesso.jsf.hibernate.hibernateutil.HibernateUtil
br.com.acesso.jsf.hibernate.sessionfilter.HibernateSessionFilter.doFilter(HibernateSessionFilter.java:23)

note The full stack trace of the root cause is available in the Apache Tomcat/6.0.18 logs.
[/quote]
No console: [quote]SEVERE: Servlet.service() for servlet FacesServlet threw exception
java.lang.NoClassDefFoundError: Could not initialize class br.com.acesso.jsf.hibernate.hibernateutil.HibernateUtil
at br.com.acesso.jsf.hibernate.sessionfilter.HibernateSessionFilter.doFilter(HibernateSessionFilter.java:23)
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.core.StandardHostValve.invoke(StandardHostValve.java:128)
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:286)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)
[/quote]
Segue o arquivo web.xml: [code]<?xml version=“1.0” encoding=“UTF-8”?>
<web-app xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance
xmlns=“http://java.sun.com/xml/ns/javaee” xmlns:web=“http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd
xsi:schemaLocation=“http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd
id=“WebApp_ID” version=“2.5”>

&lt;!-- Welcome files --&gt;
&lt;welcome-file-list&gt;
	&lt;welcome-file&gt;index.html&lt;/welcome-file&gt;
	&lt;welcome-file&gt;index.htm&lt;/welcome-file&gt;
	&lt;welcome-file&gt;index.jsp&lt;/welcome-file&gt;
&lt;/welcome-file-list&gt;

&lt;description&gt;debug web.xml&lt;/description&gt;

&lt;!-- Context Param --&gt;
&lt;context-param&gt;
	&lt;param-name&gt;javax.faces.STATE_SAVING_METHOD&lt;/param-name&gt;
	&lt;param-value&gt;server&lt;/param-value&gt;
&lt;/context-param&gt;

&lt;context-param&gt;
	&lt;param-name&gt;org.apache.myfaces.ALLOW_JAVASCRIPT&lt;/param-name&gt;
	&lt;param-value&gt;true&lt;/param-value&gt;
&lt;/context-param&gt;

&lt;context-param&gt;
	&lt;param-name&gt;org.apache.myfaces.DETECT_JAVASCRIPT&lt;/param-name&gt;
	&lt;param-value&gt;false&lt;/param-value&gt;
&lt;/context-param&gt;

&lt;context-param&gt;
	&lt;param-name&gt;org.apache.myfaces.PRETTY_HTML&lt;/param-name&gt;
	&lt;param-value&gt;true&lt;/param-value&gt;
&lt;/context-param&gt;

&lt;context-param&gt;
	&lt;param-name&gt;org.apache.myfaces.AUTO_SCROLL&lt;/param-name&gt;
	&lt;param-value&gt;true&lt;/param-value&gt;
&lt;/context-param&gt;

&lt;!-- Faces Servlet --&gt;
&lt;servlet&gt;
  &lt;servlet-name&gt;FacesServlet&lt;/servlet-name&gt; 
  &lt;servlet-class&gt;javax.faces.webapp.FacesServlet&lt;/servlet-class&gt; 
	&lt;load-on-startup&gt;1&lt;/load-on-startup&gt; 
 &lt;/servlet&gt;
&lt;servlet-mapping&gt;
	&lt;servlet-name&gt;FacesServlet&lt;/servlet-name&gt; 
	&lt;url-pattern&gt;*.jsf&lt;/url-pattern&gt; 
&lt;/servlet-mapping&gt;

&lt;!-- Hibernate Filter --&gt;
&lt;filter&gt;
	&lt;filter-name&gt;hibernateFilter&lt;/filter-name&gt;
	&lt;filter-class&gt;br.com.acesso.jsf.hibernate.sessionfilter.HibernateSessionFilter&lt;/filter-class&gt;
&lt;/filter&gt;
&lt;filter-mapping&gt;
	&lt;filter-name&gt;hibernateFilter&lt;/filter-name&gt;
	&lt;url-pattern&gt;*.jsf&lt;/url-pattern&gt;
&lt;/filter-mapping&gt;

&lt;!-- Extensions Filter --&gt;
&lt;filter&gt;
	&lt;filter-name&gt;MyFacesExtensionsFilter&lt;/filter-name&gt;
	&lt;filter-class&gt;org.apache.myfaces.webapp.filter.ExtensionsFilter&lt;/filter-class&gt;
	&lt;init-param&gt;
		&lt;param-name&gt;uploadMaxFileSize&lt;/param-name&gt;
		&lt;param-value&gt;20m&lt;/param-value&gt;
	&lt;/init-param&gt;
	&lt;init-param&gt; 
		&lt;param-name&gt;uploadThresholdSize&lt;/param-name&gt; 
		&lt;param-value&gt;100k&lt;/param-value&gt; 
	&lt;/init-param&gt;
&lt;/filter&gt;
&lt;filter-mapping&gt;
	&lt;filter-name&gt;MyFacesExtensionsFilter&lt;/filter-name&gt;
	&lt;url-pattern&gt;*.jsf&lt;/url-pattern&gt;
&lt;/filter-mapping&gt;
&lt;filter-mapping&gt;
	&lt;filter-name&gt;MyFacesExtensionsFilter&lt;/filter-name&gt;
	&lt;url-pattern&gt;/faces/*&lt;/url-pattern&gt;
&lt;/filter-mapping&gt;

</web-app>[/code]

HibernateSessionFilter.java: [code]package br.com.acesso.jsf.hibernate.sessionfilter;

public class HibernateSessionFilter implements Filter {
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws ServletException {
try {
HibernateUtil.openSession();
HibernateUtil.currentSession().beginTransaction();
filterChain.doFilter(servletRequest, servletResponse);
HibernateUtil.currentSession().getTransaction().commit();
} catch (Exception e) {
HibernateUtil.currentSession().getTransaction().rollback();
throw new ServletException(e);
} finally {
HibernateUtil.closeCurrentSession();
}
}

public void destroy() {

}

public void init(FilterConfig arg0) throws ServletException {

}

}[/code]
HibernateUtil.java: [code]package br.com.acesso.jsf.hibernate.hibernateutil;

public class HibernateUtil {
private static ThreadLocal<Session> sessions;

private static SessionFactory sessionFactory;
static {
	sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory();
	sessions= new ThreadLocal&lt;Session&gt;();
}

public static Session openSession() {
	return sessionFactory.openSession();
}

public static Session getCurrentSession() {
	if (sessions.get() == null) {
		sessions.set(openSession());
	}
	return sessions.get();
}

public static void closeCurrentSession() {
	getCurrentSession().close();
	sessions.set(null);
}

}[/code]

Alguém pode ajudar?

Abraços…

O seu problema é classpath mesmo…

O teu filter não está encontrando em tempo de runtime esta classe: br.com.acesso.jsf.hibernate.hibernateutil.HibernateUtil

Verifique onde ela está e se está sendo empacotada junto com o teu war.

Abraços