Oi pessoal!
Estou com um probleminha aqui referente à geração das tabelas e usuários pelo Spring Security com o VRaptor, apesar de gerar corretamente recebo umas exceções que ainda não descobri o motivo.
Criei um DataAccessContext.xml que chama um Bean chamado UserAdminPopulator, que é o responsável por criar as tabelas Usuario e Role, e no meu web.xml chamo o DataAccessContext.xml assim:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/dataAccessContext.xml</param-value>
</context-param>
Ao rodar o Tomcat pelo Eclipse recebo as exceções:
12:16:53,322 INFO [XmlBeanDefinitionReader] Loading XML bean definitions from ServletContext resource [/WEB-INF/dataAccessContext.xml]
12:16:53,738 INFO [DefaultListableBeanFactory] Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@8b8a47: defining beans [dataSource,dataSourcePopulator]; root of factory hierarchy
12:16:53,835 INFO [DriverManagerDataSource] Loaded JDBC driver: com.mysql.jdbc.Driver
12:16:54,524 INFO [ContextLoader ] Root WebApplicationContext: initialization completed in 1411 ms
05/12/2010 12:16:54 org.apache.catalina.core.StandardContext filterStart
SEVERE: Exception starting filter springSecurityFilterChain
org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'springSecurityFilterChain' is defined
at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition(DefaultListableBeanFactory.java:521)
at org.springframework.beans.factory.support.AbstractBeanFactory.getMergedLocalBeanDefinition(AbstractBeanFactory.java:1068)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:274)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1079)
at org.springframework.web.filter.DelegatingFilterProxy.initDelegate(DelegatingFilterProxy.java:217)
at org.springframework.web.filter.DelegatingFilterProxy.initFilterBean(DelegatingFilterProxy.java:145)
at org.springframework.web.filter.GenericFilterBean.init(GenericFilterBean.java:179)
at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:269)
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:250)
at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:368)
at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:98)
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4193)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4801)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:139)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:988)
at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:771)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:139)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:988)
at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:275)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:139)
at org.apache.catalina.core.StandardService.startInternal(StandardService.java:427)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:139)
at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:649)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:139)
at org.apache.catalina.startup.Catalina.start(Catalina.java:585)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:415)
Daqui em diante ele gera td normal, só que no final:
12:16:56,788 INFO [VRaptor ] VRaptor 3.2.1-SNAPSHOT successfuly initialized
05/12/2010 12:16:56 org.apache.catalina.core.StandardContext startInternal
SEVERE: Error filterStart
05/12/2010 12:16:56 org.apache.catalina.core.StandardContext startInternal
SEVERE: Context [/imobiliaria] startup failed due to previous errors
12:16:56,793 INFO [VRaptorApplicationContext] Closing Root WebApplicationContext: startup date [Sun Dec 05 12:16:54 BRST 2010]; parent: Root WebApplicationContext
12:16:56,797 INFO [DefaultListableBeanFactory] Destroying singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@ec436: defining beans [asmBasedTypeCreator,defaultRoutes,encodingHandlerFactory,defaultAcceptHeaderToFormat,pathAnnotationRoutesParser,defaultMethodNotAllowedHandler,defaultInterceptorHandlerFactory,defaultResourceNotFoundHandler,defaultTypeFinder,hibernateProxyInitializer,defaultDeserializers,objenesisProxifier,defaultTypeNameExtractor,paranamerNameProvider,defaultRestDefaults,validatorFactoryCreator,defaultResourceTranslator,defaultConverters,defaultRouter,XStreamXMLDeserializer,messageInterpolatorFactory,noRoutesConfiguration,defaultMultipartConfig,defaultInterceptorRegistry,JSR303ValidatorFactory,stereotypeHandler,converterHandler,interceptorStereotypeHandler,deserializesHandler,stereotypedBeansRegistrar,defaultSpringLocator,commonsUploadMultipartInterceptor,HTMLSerialization,defaultStatus,emptyResult,defaultMethodInfo,defaultHttpResult,flashInterceptor,jstlLocalization,applicationConfiguration,defaultLogicResult,defaultFormatResolver,outjectResult,interceptorListPriorToExecutionExtractor,defaultExceptionMapper,resourceLookupInterceptor,forwardToDefaultViewInterceptor,defaultResult,jsonDeserializer,defaultRepresentationResult,instantiateInterceptor,exceptionHandlerInterceptor,downloadInterceptor,defaultPathResolver,defaultRefererResult,parametersInstantiatorInterceptor,emptyElementsRemoval,deserializingInterceptor,JSR303Validator,defaultValidator,defaultRestHeadersHandler,executeMethodInterceptor,XStreamXMLSerialization,defaultValidationViewsFactory,replicatorOutjector,ognlParametersProvider,XStreamJSONSerialization,defaultPageResult,booleanConverter,bigIntegerConverter,enumConverter,primitiveLongConverter,primitiveIntConverter,primitiveDoubleConverter,localeBasedDateConverter,floatConverter,uploadedFileConverter,longConverter,integerConverter,byteConverter,primitiveBooleanConverter,primitiveCharConverter,doubleConverter,primitiveFloatConverter,localeBasedCalendarConverter,shortConverter,primitiveByteConverter,bigDecimalConverter,primitiveShortConverter,characterConverter,VRaptorRequestProvider,httpServletRequestProvider,httpServletResponseProvider,httpSessionProvider,defaultRequestExecution,defaultInterceptorStack,entityManagerCreator,entityManagerFactoryCreator,JPATransactionInterceptor,noCacheInterceptor,relatorioDAO,usuarioDAO,fotoDAO,modalidadeDAO,tipoDAO,statusDAO,proprietarioDAO,roleDAO,contatoDAO,imovelDAO,municipioDAO,imagens,busca,jasperMaker,myFirstRequestTask,sendMail,customMultipartConfig,newsletter,parameterLoader,taskSchedulerFactory,myFirstApplicationTask,news,contatoController,proprietarioController,fotoController,municipioController,usuarioController,empresaController,tasksController,relatoriosController,modalidadeController,statusController,loginController,imovelController,indexController,homeController,tipoController,org.springframework.context.annotation.internalConfigurationAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor,localeBasedDoubleConverter,localeBasedBigDecimalConverter,localeBasedFloatConverter,org.springframework.aop.config.internalAutoProxyCreator,cacheBasedTypeCreator]; parent: org.springframework.beans.factory.support.DefaultListableBeanFactory@8b8a47
12:16:56,799 INFO [ThreadPoolTaskScheduler] Shutting down ExecutorService
05/12/2010 12:16:56 org.apache.catalina.core.ApplicationContext log
INFO: Closing Spring root WebApplicationContext
12:16:56,809 INFO [XmlWebApplicationContext] Closing Root WebApplicationContext: startup date [Sun Dec 05 12:16:53 BRST 2010]; root of context hierarchy
12:16:56,809 INFO [DefaultListableBeanFactory] Destroying singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@8b8a47: defining beans [dataSource,dataSourcePopulator]; root of factory hierarchy
05/12/2010 12:16:56 org.apache.catalina.loader.WebappClassLoader clearReferencesJdbc
SEVERE: The web application [/imobiliaria] registered the JBDC driver [com.mysql.jdbc.Driver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered.
05/12/2010 12:16:56 org.apache.catalina.loader.WebappClassLoader clearReferencesThreads
SEVERE: The web application [/imobiliaria] appears to have started a thread named [MySQL Statement Cancellation Timer] but has failed to stop it. This is very likely to create a memory leak.
05/12/2010 12:16:56 org.apache.catalina.loader.WebappClassLoader clearReferencesThreads
SEVERE: The web application [/imobiliaria] appears to have started a thread named [com.google.common.base.internal.Finalizer] but has failed to stop it. This is very likely to create a memory leak.
Seria algum conflito em relação ao registro do driver do MYSQL entre o VRaptor e o processo de geração das tabelas com usuários pelo Spring Security? Outro detalhe é que não posso deixar a tag do DataAccessContext.xml no web.xml pq ao subir novamente a aplicação ele tenta gerar de novo as tabelas e usuários, acusando que as tabelas já existem, teria como criar uma condição pelo VRaptor para que isso não ocorra?
Abraço!