01/12/2010 10:56:14 org.apache.catalina.core.StandardContext filterStart
GRAVE: Exception starting filter vraptor
javax.servlet.ServletException: java.lang.NoClassDefFoundError: org/springframework/web/context/request/RequestContextListener
at br.com.caelum.vraptor.config.BasicConfiguration.getProvider(BasicConfiguration.java:75)
at br.com.caelum.vraptor.VRaptor.init(VRaptor.java:103)
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:295)
at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:422)
at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:115)
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4001)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4651)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:546)
at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:637)
at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:563)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:498)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1277)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:321)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:785)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:445)
at org.apache.catalina.core.StandardService.start(StandardService.java:519)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
at org.apache.catalina.startup.Catalina.start(Catalina.java:581)
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 org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
Caused by: java.lang.NoClassDefFoundError: org/springframework/web/context/request/RequestContextListener
at br.com.caelum.vraptor.ioc.spring.SpringProvider.<init>(SpringProvider.java:37)
at br.com.caelum.vraptor.util.jpa.JPACustomProvider.<init>(JPACustomProvider.java:45)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at br.com.caelum.vraptor.config.BasicConfiguration.getProvider(BasicConfiguration.java:73)
... 28 more
Caused by: java.lang.ClassNotFoundException: org.springframework.web.context.request.RequestContextListener
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1645)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1491)
... 35 more
01/12/2010 10:56:14 org.apache.catalina.core.StandardContext start
GRAVE: Error filterStart
01/12/2010 10:56:14 org.apache.catalina.core.StandardContext start
GRAVE: Context [/csr] startup failed due to previous errors
01/12/2010 10:56:14 org.apache.catalina.loader.WebappClassLoader clearReferencesJdbc
GRAVE: The web application [/csr] registered the JBDC driver [org.postgresql.Driver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered.
antlr-2.7.6.jar
cglib-nodep-2.1_3.jar
commons-beanutils-1.8.3.jar
commons-collections-3.2.1.jar
commons-lang-2.5.jar
commons-logging-1.1.1.jar
displaytag-1.2.jar
displaytag-portlet-1.2.jar
dom4j-1.6.1.jar
genericdao-1.0.jar
google-collect-1.0.jar
hibernate-3.5.6.Final.jar
hibernate-jpa-2.0-api-1.0.0.Final.jar
hibernate-validator-4.1.0.Final.jar
javassist-3.9.0.GA.jar
jstl-api-1.2.jar
jstl-impl-1.2.jar
jta-1.1.jar
log4j-1.2.15.jar
mirror-1.5.1.jar
objenesis-1.1.jar
ognl-2.7.3.jar
paranamer-2.2.jar
picocontainer-2.8.jar
postgresql-9.0-801.jdbc4.jar
scannotation-1.0.2.jar
servlet-api-2.5.jar
slf4j-api-1.6.1.jar
slf4j-log4j12-1.6.1.jar
validation-api-1.0.0.GA.jar
vraptor-3.2.0.jar
xstream-1.3.1.jar
<?xml version="1.0" encoding="ISO-8859-1"?>
<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">
<display-name>csr</display-name>
<!-- CONTEXT Configuration -->
<context-param>
<param-name>javax.servlet.jsp.jstl.fmt.localizationContext</param-name>
<param-value>messages</param-value>
</context-param>
<context-param>
<param-name>javax.servlet.jsp.jstl.fmt.locale</param-name>
<param-value>pt_BR</param-value>
</context-param>
<context-param>
<description>V|Raptor handles HTTP requests in ISO-8859-1 format</description>
<param-name>br.com.caelum.vraptor.encoding</param-name>
<param-value>ISO-8859-1</param-value>
</context-param>
<context-param>
<param-name>br.com.caelum.vraptor.provider</param-name>
<param-value>br.com.caelum.vraptor.util.jpa.JPACustomProvider</param-value>
</context-param>
<!-- STARTUP Configuration -->
<servlet>
<servlet-name>StartUp</servlet-name>
<servlet-class>br.com.faespsenar.csr.servlet.StartUp</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>StartUp</servlet-name>
<url-pattern>/startUp</url-pattern>
</servlet-mapping>
<!-- FILTER Configuration -->
<filter>
<filter-name>vraptor</filter-name>
<filter-class>br.com.caelum.vraptor.VRaptor</filter-class>
</filter>
<filter-mapping>
<filter-name>vraptor</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>FORWARD</dispatcher>
<dispatcher>REQUEST</dispatcher>
</filter-mapping>
<!-- JSP Configuration -->
<jsp-config>
<jsp-property-group>
<display-name>Coloca cabeçalhos e rodapés em todos os jsp´s</display-name>
<url-pattern>*.jsp</url-pattern>
<include-prelude>/WEB-INF/jsp/header.jspf</include-prelude>
<include-coda>/WEB-INF/jsp/footer.jspf</include-coda>
</jsp-property-group>
</jsp-config>
</web-app>
GRAVE: Servlet.service() for servlet default threw exception
org.picocontainer.injectors.AbstractInjector$UnsatisfiableDependenciesException: br.com.faespsenar.csr.controller.UsuarioController has unsatisfied dependency: class br.com.faespsenar.csr.dao.DAOFactory among unsatisfiable dependencies: [[class br.com.faespsenar.csr.dao.DAOFactory, interface br.com.caelum.vraptor.Result, interface javax.servlet.http.HttpServletRequest]] where org.picocontainer.DefaultPicoContainer@6c44c5:72<I><org.picocontainer.DefaultPicoContainer@1e9c3f:1><I><org.picocontainer.DefaultPicoContainer@16ff7a:77><| was the leaf container being asked for dependencies.
at org.picocontainer.injectors.ConstructorInjector.getGreediestSatisfiableConstructor(ConstructorInjector.java:156)
at org.picocontainer.injectors.ConstructorInjector$1.run(ConstructorInjector.java:184)
at org.picocontainer.injectors.AbstractInjector$ThreadLocalCyclicDependencyGuard.observe(AbstractInjector.java:289)
at org.picocontainer.injectors.ConstructorInjector.getComponentInstance(ConstructorInjector.java:229)
at org.picocontainer.behaviors.AbstractBehavior.getComponentInstance(AbstractBehavior.java:66)
at org.picocontainer.behaviors.Stored.getComponentInstance(Stored.java:92)
at org.picocontainer.DefaultPicoContainer.getInstance(DefaultPicoContainer.java:607)
at org.picocontainer.DefaultPicoContainer.getComponent(DefaultPicoContainer.java:572)
at org.picocontainer.DefaultPicoContainer.getComponent(DefaultPicoContainer.java:580)
at br.com.caelum.vraptor.ioc.pico.PicoBasedContainer.instanceFor(PicoBasedContainer.java:39)
at br.com.caelum.vraptor.ioc.pico.PicoProvider$1.instanceFor(PicoProvider.java:78)
at br.com.caelum.vraptor.interceptor.InstantiateInterceptor.intercept(InstantiateInterceptor.java:41)
at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
at br.com.caelum.vraptor.interceptor.InterceptorListPriorToExecutionExtractor.intercept(InterceptorListPriorToExecutionExtractor.java:44)
at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
at br.com.caelum.vraptor.interceptor.FlashInterceptor.intercept(FlashInterceptor.java:81)
at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
at br.com.caelum.vraptor.interceptor.ResourceLookupInterceptor.intercept(ResourceLookupInterceptor.java:67)
at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56)
at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
at br.com.caelum.vraptor.core.DefaultRequestExecution.execute(DefaultRequestExecution.java:70)
at br.com.caelum.vraptor.VRaptor$1.insideRequest(VRaptor.java:92)
at br.com.caelum.vraptor.ioc.pico.PicoProvider.provideForRequest(PicoProvider.java:181)
at br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:89)
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:127)
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:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Unknown Source)
...
...
...
@Resource
public class UsuarioController {
private final DAOFactory dao;
private final Result result;
private final HttpServletRequest request;
public UsuarioController(DAOFactory daoFactory, Result result, HttpServletRequest request) {
this.dao = daoFactory;
this.result = result;
this.request = request;
}
...
...
...
}
public class DAOFactory {
protected final <T> GenericDAO<T> getDao(Class<T> classe) {
return new GenericDAO<T>(classe);
}
public UsuarioDAO getUsuarioDAO() {
return new UsuarioDAO();
}
public GenericDAO<Grupo> getGrupoDAO() {
return getDao(Grupo.class);
}
}
public class GenericDAO<T> {
private EntityManager manager;
private Class<? extends T> classe;
public GenericDAO(Class<? extends T> classe) {
this.manager = JPAFactory.getEntityManager();
this.classe = classe;
}
public final T insert(T entity) {
// this.manager.getTransaction().begin();
this.manager.persist(entity);
// this.manager.getTransaction().commit();
return (T) entity;
}
public final T update(T entity) {
// this.manager.getTransaction().begin();
this.manager.merge(entity);
// this.manager.getTransaction().commit();
return (T) entity;
}
public final void delete(T entity) {
this.remove(entity);
}
public final Collection<T> listAll() {
return this.manager.createQuery("from " + classe.getName()).getResultList();
}
public final Integer recordCount() {
return (Integer) criaCriteria().setProjection(Projections.rowCount()).uniqueResult();
}
...
...
...
}
public class JPAFactory {
private static EntityManagerFactory entityManagerFactory;
private JPAFactory() {};
public static EntityManager getEntityManager() {
if (entityManagerFactory == null)
entityManagerFactory = Persistence.createEntityManagerFactory("default");
return entityManagerFactory.createEntityManager();
}
public static EntityManager getEntityManager(final String persistenceUnitName) {
return Persistence.createEntityManagerFactory(persistenceUnitName).createEntityManager();
}
}
<?xml version="1.0" encoding="ISO-8859-1"?>
<persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence">
<persistence-unit name="default">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<!-- Aqui é o local onde as Entidades devem ser mapeadas -->
<class>br.com.faespsenar.csr.entity.Grupo</class>
<class>br.com.faespsenar.csr.entity.Usuario</class>
<properties>
<property name="hibernate.dialect" value="br.com.faespsenar.csr.utilities.CustomPostgreSQLDialect" />
<property name="hibernate.connection.url" value="jdbc:postgresql://localhost:5432/pg_csr" />
<property name="hibernate.connection.driver_class" value="org.postgresql.Driver" />
<property name="hibernate.connection.username" value="..." />
<property name="hibernate.connection.password" value="..." />
<property name="hibernate.bytecode.use_reflection_optimizer" value="true" />
<property name="hibernate.show_sql" value="true" />
<property name="hibernate.format_sql" value="true" />
<property name="hibernate.hbm2ddl.auto" value="update" />
<!-- # Cache de Segundo nivel habilitado (Chace de consulta repetidas) # -->
<!--
<property name="hibernate.cache.provider_class" value="org.hibernate.cache.EhCacheProvider" />
<property name="hibernate.cache.use_query_cache" value="true" />
<property name="hibernate.cache.use_structured_entries" value="true" />
<property name="hibernate.cache.use_second_level_cache" value="true" />
-->
<!-- # Pool de conexao com o banco de dados (C3PO) # -->
<!--
<property name="hibernate.connection.provider_class" value="org.hibernate.connection.C3P0ConnectionProvider" />
<property name="hibernate.c3p0.acquire_increment" value="1" />
<property name="hibernate.c3p0.idle_test_period" value="100" />
<property name="hibernate.c3p0.min_size" value="5" />
<property name="hibernate.c3p0.max_size" value="60" />
<property name="hibernate.c3p0.max_statements" value="150" />
<property name="hibernate.c3p0.timeout" value="100" />
-->
</properties>
</persistence-unit>
</persistence>
Obrigado.