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”>
<!-- Welcome files -->
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<description>debug web.xml</description>
<!-- Context Param -->
<context-param>
<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
<param-value>server</param-value>
</context-param>
<context-param>
<param-name>org.apache.myfaces.ALLOW_JAVASCRIPT</param-name>
<param-value>true</param-value>
</context-param>
<context-param>
<param-name>org.apache.myfaces.DETECT_JAVASCRIPT</param-name>
<param-value>false</param-value>
</context-param>
<context-param>
<param-name>org.apache.myfaces.PRETTY_HTML</param-name>
<param-value>true</param-value>
</context-param>
<context-param>
<param-name>org.apache.myfaces.AUTO_SCROLL</param-name>
<param-value>true</param-value>
</context-param>
<!-- Faces Servlet -->
<servlet>
<servlet-name>FacesServlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>FacesServlet</servlet-name>
<url-pattern>*.jsf</url-pattern>
</servlet-mapping>
<!-- Hibernate Filter -->
<filter>
<filter-name>hibernateFilter</filter-name>
<filter-class>br.com.acesso.jsf.hibernate.sessionfilter.HibernateSessionFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>hibernateFilter</filter-name>
<url-pattern>*.jsf</url-pattern>
</filter-mapping>
<!-- Extensions Filter -->
<filter>
<filter-name>MyFacesExtensionsFilter</filter-name>
<filter-class>org.apache.myfaces.webapp.filter.ExtensionsFilter</filter-class>
<init-param>
<param-name>uploadMaxFileSize</param-name>
<param-value>20m</param-value>
</init-param>
<init-param>
<param-name>uploadThresholdSize</param-name>
<param-value>100k</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>MyFacesExtensionsFilter</filter-name>
<url-pattern>*.jsf</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>MyFacesExtensionsFilter</filter-name>
<url-pattern>/faces/*</url-pattern>
</filter-mapping>
</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<Session>();
}
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…