Servelets Filters - Erro

5 respostas
M

Pessoal, não estou conseguindo intercepitar uma requisição em qualquer pagina jsf toda vez que que eu abro uma session do hibernate…
obs: quando eu removo o filter do web.xml…a pagina funciona…

veja o erro

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.Error: Unresolved compilation problem:

br.com.util.HibernateUtil.openSession(HibernateUtil.java:25)
br.com.util.HibernateSessionFilter.doFilter(HibernateSessionFilter.java:21)

as classes:

import java.io.IOException;

import javax.servlet.Filter;

import javax.servlet.FilterChain;

import javax.servlet.FilterConfig;

import javax.servlet.ServletException;

import javax.servlet.ServletRequest;

import javax.servlet.ServletResponse;

//classe HibernateSessionFilter

public class HibernateSessionFilter implements Filter {

public void destroy() {
	// TODO Auto-generated method stub

}

public void doFilter(ServletRequest req, ServletResponse res, FilterChain fc)
		throws IOException, ServletException {
	HibernateUtil.openSession();
	try {
		HibernateUtil.currentSession().beginTransaction();
		fc.doFilter(req, res);
		HibernateUtil.currentSession().getTransaction().commit();

	} catch (Exception e) {
		e.getMessage();
		e.getStackTrace();
		throw new ServletException(e);
		
	} finally {
		HibernateUtil.closeCurrentSession();

	}

}

public void init(FilterConfig c) throws ServletException {
	// TODO Auto-generated method stub

}

}

//clase HibernateUtil

import org.apache.log4j.Logger;

import org.hibernate.Session;

import org.hibernate.SessionFactory;

import org.hibernate.cfg.AnnotationConfiguration;

public class HibernateUtil {
private static Logger logger = Logger.getLogger(HibernateUtil.class);

private static SessionFactory sessionFactory;

private static ThreadLocal<Session> sessions = new ThreadLocal<Session>();

static {

	sessionFactory = new AnnotationConfiguration().configure()
			.buildSessionFactory();

}

public static Session openSession() {

	if (sessions.get() != null) {
		logger.error("there was a session for this thread alredy ");

	}
	sessions.set(sessionFactory.openSession());
	return sessions.get();

}

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

}

public static Session currentSession() {
	return sessions.get();

}

web xml

HibernateSessionFilter
br.com.caelum.fj26.util.HibernateSessionFilter

HibernateSessionFilter /*

quem puder ajudar… valeu!!

5 Respostas

M

galera… ja to deseperado!! :smiley:

furutani

Poste o stacktrace completo. O trechinho que você mandou não ajuda em nada.

M

blz cara… valeu por dar uma força… to começando agora com java web…rsrsr

num consigo mais iniciar meu projeto… mas ai montei outro novamente, incluir o j2ee.jar no build path. Descobri o que esta causando o problema, mas nao consigo acertar… O que acontece é quando eu coloco uma configuração de filtro no web xml

HibernateSessionFilter br.com.util.HibernateSessionFilter HibernateSessionFilter /*

a mensagem abaixo aparece…

ype Exception report

message

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

exception

javax.servlet.ServletException: org.hibernate.exception.JDBCConnectionException: Cannot open connection
br.com.util.HibernateSessionFilter.doFilter(HibernateSessionFilter.java:27)

root cause

org.hibernate.exception.JDBCConnectionException: Cannot open connection

org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:97)

org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)

org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:52)

org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:449)

org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:167)

org.hibernate.jdbc.JDBCContext.connection(JDBCContext.java:142)

org.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:85)

org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1353)

br.com.caelum.fj26.util.HibernateSessionFilter.doFilter(HibernateSessionFilter.java:23)

root cause

com.mysql.jdbc.CommunicationsException: Communications link failure due to underlying exception:

** BEGIN NESTED EXCEPTION **

java.net.SocketException
MESSAGE: java.net.ConnectException: Connection refused: connect

STACKTRACE:

java.net.SocketException: java.net.ConnectException: Connection refused: connect

at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:156)

at com.mysql.jdbc.MysqlIO.(MysqlIO.java:284)

at com.mysql.jdbc.Connection.createNewIO(Connection.java:2541)

at com.mysql.jdbc.Connection.(Connection.java:1474)

at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:266)

at java.sql.DriverManager.getConnection(DriverManager.java:582)

at java.sql.DriverManager.getConnection(DriverManager.java:154)

at org.hibernate.connection.DriverManagerConnectionProvider.getConnection(DriverManagerConnectionProvider.java:133)

at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:446)

at org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:167)

at org.hibernate.jdbc.JDBCContext.connection(JDBCContext.java:142)

at org.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:85)

at org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1353)

at br.com.caelum.fj26.util.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:175)

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

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(Thread.java:619)

** END NESTED EXCEPTION **

Last packet sent to the server was 0 ms ago.

com.mysql.jdbc.Connection.createNewIO(Connection.java:2607)

com.mysql.jdbc.Connection.(Connection.java:1474)

com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:266)

java.sql.DriverManager.getConnection(DriverManager.java:582)

java.sql.DriverManager.getConnection(DriverManager.java:154)

org.hibernate.connection.DriverManagerConnectionProvider.getConnection(DriverManagerConnectionProvider.java:133)

org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:446)

org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:167)

org.hibernate.jdbc.JDBCContext.connection(JDBCContext.java:142)

org.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:85)

org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1353)

br.com.caelum.fj26.util.HibernateSessionFilter.doFilter(HibernateSessionFilter.java:23)

quando eu removo as linhas do web xml, a aplicação funciona…

valeu

Fernando_Generoso_da

Já percebeu o que está errado???

Dá uma olhada no arquivo de configuração do hibernate, a url de banco, senha, usuário, etc… O teu sistema não está conseguindo se conectar ao banco!!

Fernando

M
ola amigo na verdade eu tinha esquecido de iniciar o serviço do my sql sorry mas na verdade o erro que estra dando sh este

veja a log .

28/04/2009 11:42:59 org.apache.tomcat.util.digester.SetPropertiesRule begin

WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property source to org.eclipse.jst.jee.server:jsfprojeto did not find a matching property.

28/04/2009 11:42:59 org.apache.catalina.core.AprLifecycleListener init

INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: D:\Java\Sun\SDK\jdk\jre\bin;.;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:/Arquivos de programas/Java/jre1.6.0_06/bin/client;C:/Arquivos de programas/Java/jre1.6.0_06/bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Arquivos de programas\ATI Technologies\ATI.ACE\Core-Static;;;C:\Arquivos de programas\QuickTime\QTSystem;D:\Softwares\MySQL\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Arquivos de programas\ATI Technologies\ATI.ACE\Core-Static;D:\Softwares\MySQL\MySQL Server 5.0\bin;SET PATH=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Arquivos de programas\ATI Technologies\ATI.ACE\Core-Static;;;C:\Arquivos de programas\QuickTime\QTSystem;D:\Softwares\MySQL\bin;D:\Java\apache-ant-1.7.0\bin;D:\Java\Sun\SDK\jdk\jre\bin;D:\Java\Tomcat 6.0\bin;D:\Java\Tomcat 6.0\lib

28/04/2009 11:42:59 org.apache.coyote.http11.Http11Protocol init

INFO: Initializing Coyote HTTP/1.1 on http-8080

28/04/2009 11:42:59 org.apache.catalina.startup.Catalina load

INFO: Initialization processed in 378 ms

28/04/2009 11:42:59 org.apache.catalina.core.StandardService start

INFO: Starting service Catalina

28/04/2009 11:42:59 org.apache.catalina.core.StandardEngine start

INFO: Starting Servlet Engine: Apache Tomcat/6.0.16

28/04/2009 11:42:59 org.apache.catalina.core.StandardContext listenerStart

SEVERE: Error configuring application listener of class com.sun.faces.config.ConfigureListener

java.lang.NoClassDefFoundError: javax/faces/FacesException

at java.lang.Class.getDeclaredConstructors0(Native Method)

at java.lang.Class.privateGetDeclaredConstructors(Class.java:2389)

at java.lang.Class.getConstructor0(Class.java:2699)

at java.lang.Class.newInstance0(Class.java:326)

at java.lang.Class.newInstance(Class.java:308)

at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3787)

at org.apache.catalina.core.StandardContext.start(StandardContext.java:4350)

at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)

at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)

at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)

at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)

at org.apache.catalina.core.StandardService.start(StandardService.java:516)

at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)

at org.apache.catalina.startup.Catalina.start(Catalina.java:578)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

at java.lang.reflect.Method.invoke(Method.java:597)

at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)

at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)

Caused by: java.lang.ClassNotFoundException: javax.faces.FacesException

at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1360)

at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1206)

at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)

 20 more

28/04/2009 11:42:59 org.apache.catalina.core.StandardContext listenerStart

SEVERE: Error configuring application listener of class com.sun.faces.application.WebappLifecycleListener

java.lang.NoClassDefFoundError: javax/faces/FacesException

at com.sun.faces.application.WebappLifecycleListener.(WebappLifecycleListener.java:67)

at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)

at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)

at java.lang.reflect.Constructor.newInstance(Constructor.java:513)

at java.lang.Class.newInstance0(Class.java:355)

at java.lang.Class.newInstance(Class.java:308)

at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3787)

at org.apache.catalina.core.StandardContext.start(StandardContext.java:4350)

at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)

at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)

at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)

at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)

at org.apache.catalina.core.StandardService.start(StandardService.java:516)

at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)

at org.apache.catalina.startup.Catalina.start(Catalina.java:578)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

at java.lang.reflect.Method.invoke(Method.java:597)

at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)

at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)

Caused by: java.lang.ClassNotFoundException: javax.faces.FacesException

at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1360)

at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1206)

at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)

 22 more

28/04/2009 11:42:59 org.apache.catalina.core.StandardContext listenerStart

SEVERE: Skipped installing application listeners due to previous error(s)

28/04/2009 11:42:59 org.apache.catalina.core.StandardContext start

SEVERE: Error listenerStart

28/04/2009 11:42:59 org.apache.catalina.core.StandardContext start

SEVERE: Context [/jsfprojeto] startup failed due to previous errors

28/04/2009 11:42:59 org.apache.coyote.http11.Http11Protocol start

INFO: Starting Coyote HTTP/1.1 on http-8080

28/04/2009 11:42:59 org.apache.jk.common.ChannelSocket init

INFO: JK: ajp13 listening on /0.0.0.0:8009

28/04/2009 11:42:59 org.apache.jk.server.JkMain start

INFO: Jk running ID=0 time=0/31  config=null

28/04/2009 11:42:59 org.apache.catalina.startup.Catalina start

INFO: Server startup in 395 ms

lembrando que isto ocorre quando adiciono as linhas do web xml

HibernateSessionFilter
br.com.caelum.fj26.util.HibernateSessionFilter

HibernateSessionFilter /*

valeu!!

Criado 25 de abril de 2009
Ultima resposta 28 de abr. de 2009
Respostas 5
Participantes 3