olá pessoal
estou fazendo um projeto usando vraptor 3.1.0 e hibernate, e estou com problemas no dao factory, vi algumas implementações e com base nelas montei a minha
interfacepackage smcv.dao;
import java.util.List;
public interface DaoInter<T> {
public void adicionar(T object);
public void atualizar(T object);
public void remover(T object);
public T carregar(Long id);
public List<T> listarTudo();
public List<T> listar(final int ini, final int max);
}
package smcv.dao;
import java.util.List;
import org.hibernate.Session;
import br.com.caelum.vraptor.ioc.Component;
@Component
public class DaoImpl<T> implements DaoInter<T> {
private Class<T> classe;
private final Session session;
public DaoImpl(Session session, Class<T> classe)
{
this.classe = classe;
this.session = session;
}
@Override
public void adicionar(T object) {
this.session.save(object);
this.session.flush();
}
@Override
public void atualizar(T object) {
this.session.update(object);
this.session.flush();
}
@Override
public T carregar(Long id) {
return (T) this.session.load(this.classe, id);
}
@Override
public List<T> listar(int ini, int max) {
return this.session.createCriteria(this.classe).setFirstResult(ini).setMaxResults(max).list();
}
@Override
public List<T> listarTudo() {
return this.session.createCriteria(this.classe).list();
}
@Override
public void remover(T object) {
this.session.delete(object);
}
}
package smcv.dao;
import org.hibernate.Session;
import br.com.caelum.vraptor.ioc.Component;
import smcv.modelo.area.Estado;
@Component
public class DaoFactory {
private static Session session;
public DaoFactory(Session session) {
this.session = session;
}
public static DaoImpl getDaoEstado()
{
return new DaoImpl<Estado>(session,Estado.class);
}
}
11:32:42,343 DEBUG ConnectionManager:427 - aggressively releasing JDBC connection
11:32:42,343 DEBUG ConnectionManager:464 - releasing JDBC connection [ (open PreparedStatements: 0, globally: 0) (open ResultSets: 0, globally: 0)]
14/02/2010 11:32:44 org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet default threw exception
br.com.caelum.vraptor.InterceptionException: java.lang.NullPointerException
at br.com.caelum.vraptor.interceptor.ExecuteMethodInterceptor.intercept(ExecuteMethodInterceptor.java:77)
at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:46)
at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:59)
at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:48)
at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:59)
at br.com.caelum.vraptor.interceptor.ParametersInstantiatorInterceptor.intercept(ParametersInstantiatorInterceptor.java:77)
at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:46)
at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:59)
at br.com.caelum.vraptor.interceptor.InstantiateInterceptor.intercept(InstantiateInterceptor.java:42)
at br.com.caelum.vraptor.core.InstantiatedInterceptorHandler.execute(InstantiatedInterceptorHandler.java:41)
at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:59)
at br.com.caelum.vraptor.util.hibernate.HibernateTransactionInterceptor.intercept(HibernateTransactionInterceptor.java:45)
at br.com.caelum.vraptor.core.InstantiatedInterceptorHandler.execute(InstantiatedInterceptorHandler.java:41)
at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:59)
at br.com.caelum.vraptor.interceptor.InterceptorListPriorToExecutionExtractor.intercept(InterceptorListPriorToExecutionExtractor.java:46)
at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:46)
at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:59)
at br.com.caelum.vraptor.interceptor.FlashInterceptor.intercept(FlashInterceptor.java:80)
at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:46)
at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:59)
at br.com.caelum.vraptor.interceptor.ResourceLookupInterceptor.intercept(ResourceLookupInterceptor.java:67)
at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:46)
at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:59)
at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:48)
at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:59)
at br.com.caelum.vraptor.core.DefaultRequestExecution.execute(DefaultRequestExecution.java:62)
at br.com.caelum.vraptor.VRaptor$1.insideRequest(VRaptor.java:91)
at br.com.caelum.vraptor.ioc.spring.SpringProvider.provideForRequest(SpringProvider.java:55)
at br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:88)
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:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.NullPointerException
at smcv.dao.DaoImpl.adicionar(DaoImpl.java:23)
at smcv.controller.EstadoController.adiciona(EstadoController.java:40)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at br.com.caelum.vraptor.interceptor.ExecuteMethodInterceptor.intercept(ExecuteMethodInterceptor.java:50)
... 40 more
11:32:44,484 DEBUG SessionImpl:248 - opened session at timestamp: [telefone removido]
11:32:44,484 DEBUG JDBCTransaction:82 - begin
11:32:44,484 DEBUG ConnectionManager:444 - opening JDBC connection
11:32:44,484 DEBUG JDBCTransaction:87 - current autocommit status: false
gravando dados no banco
11:32:44,546 DEBUG JDBCTransaction:186 - rollback
11:32:44,546 DEBUG JDBCTransaction:197 - rolled back JDBC Connection
11:32:44,546 DEBUG ConnectionManager:427 - aggressively releasing JDBC connection
11:32:44,546 DEBUG ConnectionManager:464 - releasing JDBC connection [ (open PreparedStatements: 0, globally: 0) (open ResultSets: 0, globally: 0)]
alguém sabe qual é o problema, e gostaria tambem de saber se essas implementações estão corretas se tem algo que eu poderia mudar, melhorar e etc.
vlw
