VRaptor3 e Hibernate 3.5 - Problemas com log4j [Resolvido]

Oi pessoal!
Baixei o Hibernate 3.5 final para usar numa aplicação, agora o Hibernate vêm apenas num jar, ao invés dos jars separados como antes. O problema é quando eu rodo o arquivo GeraTabela para que crie as tabelas no banco.

Esta é a saida do console:

log4j:WARN No appenders could be found for logger (org.hibernate.cfg.annotations.Version).
log4j:WARN Please initialize the log4j system properly.

Meu log4j.xml que está dentro de /src:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
        
        <appender name="stdout" class="org.apache.log4j.ConsoleAppender">
                <layout class="org.apache.log4j.PatternLayout">
                        <param name="ConversionPattern" 
                                value="%d{HH:mm:ss,SSS} %5p [%-20c{1}] %m%n"/>
                </layout>
        </appender>

        <category name="org.vraptor">
                <priority value="INFO" />
                <appender-ref ref="stdout" />
        </category>

        <category name="com.thoughtworks">
                <priority value="INFO" />
                <appender-ref ref="stdout" />
        </category>
                
        <category name="br.com.caelum.vraptor">
                <priority value="INFO" />
                <appender-ref ref="stdout" />
        </category>
        
        <category name="org.springframework">
                <priority value="INFO" />
                <appender-ref ref="stdout" />
        </category>
 
</log4j:configuration>

Todas as classes estão anotadas e incluidas no HibernateUtil.

O que pode ser?

Abraço!

inclua isso no seu log4j.xml:

         <category name="org.hibernate">  
                 <priority value="INFO" />  
                 <appender-ref ref="stdout" />  
         </category>

e pode tirar o do org.vraptor … o vraptor 3 não tem mais esse pacote :wink:

de qqer forma aquele warn q deu não é importante… só diz que vc não configurou o logger daquela classe específica do hibernate…

E ai Lucas!!

Fiz o que sugeriu, olha a saida:

18:31:17,443  INFO [Version             ] Hibernate Annotations 3.5.0-Final
18:31:17,471  INFO [Environment         ] Hibernate 3.5.0-Final
18:31:17,475  INFO [Environment         ] loaded properties from resource hibernate.properties: {hibernate.connection.driver_class=org.postgresql.Driver, hibernate.cache.provider_class=org.hibernate.cache.HashtableCacheProvider, hibernate.max_fetch_depth=1, hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect, hibernate.jdbc.use_streams_for_binary=true, hibernate.format_sql=true, hibernate.query.substitutions=yes 'Y', no 'N', hibernate.proxool.pool_alias=pool1, hibernate.connection.username=postgres, hibernate.cache.region_prefix=hibernate.test, hibernate.connection.url=jdbc:postgresql://localhost/sgi, hibernate.show_sql=true, hibernate.bytecode.use_reflection_optimizer=false, hibernate.connection.password=****, hibernate.jdbc.batch_versioned_data=true, hibernate.connection.pool_size=1}
18:31:17,479  INFO [Environment         ] using java.io streams to persist binary types
18:31:17,479  INFO [Environment         ] Bytecode provider name : javassist
18:31:17,484  INFO [Environment         ] using JDK 1.4 java.sql.Timestamp handling
18:31:17,688  INFO [Version             ] Hibernate Commons Annotations 3.2.0.Final
18:31:17,765  INFO [Dialect             ] Using dialect: org.hibernate.dialect.PostgreSQLDialect
18:31:17,945  INFO [AnnotationConfiguration] Hibernate Validator not found: ignoring
18:31:17,957  INFO [SchemaExport        ] Running hbm2ddl schema export
18:31:17,958  INFO [SchemaExport        ] exporting generated schema to database
18:31:17,962  INFO [DriverManagerConnectionProvider] Using Hibernate built-in connection pool (not for production use!)
18:31:17,962  INFO [DriverManagerConnectionProvider] Hibernate connection pool size: 1
18:31:17,962  INFO [DriverManagerConnectionProvider] autocommit mode: false
18:31:17,972  INFO [DriverManagerConnectionProvider] using driver: org.postgresql.Driver at URL: jdbc:postgresql://localhost/sgi
18:31:17,972  INFO [DriverManagerConnectionProvider] connection properties: {user=postgres, password=****}
18:31:18,089  INFO [SchemaExport        ] schema export complete
18:31:18,091  INFO [DriverManagerConnectionProvider] cleaning up connection pool: jdbc:postgresql://localhost/sgi

Fui no banco e não têm nada criado.

o banco q vc passou existe? vc fez schema-export com true true? true false?

O banco já existe, é o sgi mesmo, ele está vazio, e está como true, true:

public class GeraTabela {
	
	public static void main(String[] args) {
	    // Cria as tabelas no banco de dados com as classes anotadas
	    AnnotationConfiguration cfg = new AnnotationConfiguration();
	    cfg.addAnnotatedClass(Usuario.class);
	    cfg.addAnnotatedClass(Imovel.class);
	    SchemaExport se = new SchemaExport(cfg);
	    se.create(true, true);
	}

}

vc tem um hibernate.cfg.xml ou hibernate.properties?

adicione a propriedade:

hibernate.hbm2ddl.auto = update

daí vc não precisa fazer o schema export :wink:

Descomentei essa linha no meu hibernate.properties que está na /src e coloquei lá no GeraTabela false, false. Mesmo assim não acontece nada. =/

O hibernate.properties está assim:


hibernate.query.substitutions yes 'Y', no 'N'
hibernate.dialect org.hibernate.dialect.PostgreSQLDialect
hibernate.connection.driver_class org.postgresql.Driver
hibernate.connection.url jdbc:postgresql://localhost/sgi
hibernate.connection.username user
hibernate.connection.password senha
hibernate.connection.pool_size 1
hibernate.proxool.pool_alias pool1
hibernate.show_sql true
hibernate.format_sql true
hibernate.hbm2ddl.auto update
hibernate.max_fetch_depth 1
hibernate.jdbc.batch_versioned_data true
hibernate.jdbc.use_streams_for_binary true
hibernate.cache.region_prefix hibernate.test
hibernate.cache.provider_class org.hibernate.cache.HashtableCacheProvider

tenta trocar pra alugum outro banco (por exemplo o hsqldb que é em memória, só um jar a mais) e ve se funciona…

com o hbm2ddl ativado, é só fazer qqer operação com o banco que as classes serão geradas… vê se isso funciona

A mensagem é clara: não há log4.properties ou log4j.xml no classpath.

[quote=Guevara]O banco já existe, é o sgi mesmo, ele está vazio, e está como true, true:

[code]
public class GeraTabela {

public static void main(String[] args) {
    // Cria as tabelas no banco de dados com as classes anotadas
    AnnotationConfiguration cfg = new AnnotationConfiguration();
    cfg.addAnnotatedClass(Usuario.class);
    cfg.addAnnotatedClass(Imovel.class);
    SchemaExport se = new SchemaExport(cfg);
    se.create(true, true);
}

}
[/code][/quote]

não precisa nem rodar esse script

basta upar seu app, com a propriedade hibernate.hbm2ddl.auto = update

Obs.: no 3.5 muitas propriedade mudaram de nome pra ficarem conformes ao 3.5 … olhe com cuidado!!!

prefira criar um persistence.xml, e criar com JPA… é melhor

Complementando, há muitas vantagens em usar JPA. Uma delas é o JPA faz scan das classes para você automatico, assim vocẽ não precisa declarar mais as classes e possívelmente esquecer de declarar alguma. Outra delas é usar um padrão do JEE, sendo assim há uma semelhança cada vez maior entre Hibernate, Toplink e afins.

Usando/estudando JPA você pode dizer que praticamente conhece todos os ORMs do mercado. Há poucas diferenças entre eles, features extras, e afins.

Além disso, mesmo que remota a chance, você pode facilmente migrar de Hibernate para Toplink, ou migrar entre quaisquer implementações JPA com poucas (ou quase nenhuma) modificação no seu projeto.

Sobre criar as tabelas, o Hibernate possui uma propriedade chamada hibernate.hbm2ddl.auto que te permite criar e atualizar a estrutura da tabela. Valores como DROP-CREATE apagam e criam a cada deploy da aplicação, ou UPDATE atualiza criando os campos novos e criando tabelas novas (porém ele não apaga os campos que você removeu).

Oi Garcia! Obrigado pelos esclarecimentos, fiz algumas mudanças aqui, creio que meus imports nos beans estejam corretos agora:

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;

Eu já estava usando anotações JPA para @Entity, e rodava numa boa o GeraTabela pra criação do banco sem problemas, depois que passei a usar o Hibernate 3.5 que eu não consigo mais criar o banco.

Meu novo persistence.xml:

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence">
    <persistence-unit name="Imobiliaria">
    <provider>org.hibernate.ejb.HibernatePersistence</provider>
        <class>br.com.imobiliaria.bean.Usuario</class>
        <class>br.com.imobiliaria.bean.Filme</class>
        <properties>
            <property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect" />
            <property name="hibernate.connection.url" value="jdbc:postgresql://localhost/sgi" />
            <property name="hibernate.connection.driver_class" value="org.postgresql.Driver" />
            <property name="hibernate.connection.password" value="senha" />
            <property name="hibernate.connection.username" value="postgres" />
            <property name="hibernate.hbm2ddl.auto" value="update" />
        </properties>
</persistence-unit>
</persistence>

Em eu aponto pro log4j.xml? Como faço para que as tabelas sejam criadas se não estarei usando o GeraTabela?
obs: uso o Tomcat apenas descompactado na Home, e controlo pelo Eclipse.

Abraço!

Guevara, você não precisa especificar as classes que você quer usar no JPA. O container irá fazer um scan em suas classes e mapeará todas que tiverem o @Entity.

Provider você indica qual implementação de JPA você está usando, se Hibernate, Eclipselink, etc…

O valor de hibernate.hbm2ddl.auto define o que será feito. No seu caso como você colocou UPDATE ele irá atualizar toda a estrutura sempre que você iniciar a aplicação. Tem mais na documentação: http://docs.jboss.org/hibernate/stable/core/reference/en/html/session-configuration.html

Para o log4j, cabe lembrar do post que eu citei lá encima. A mensagem de erro é clara, ele não está achando seu log4j.xml ou log4j.properties. Eu não sei a que pé anda o log4j, já que eu não gosto dele, mas é bom pesquisar se ele ainda aceita o log4j.xml ou se tem que ser log4j.properties. Verifique se ele está no raíz do seu source-folder do seu projeto, e quando você manda compilar veja se ele está sendo copiado para o /WEB-INF/classes.

Mude seu persistence.xml para o abaixo. Note que eu removi as declarações das classes já que o JPA faz scan automatico.

Além disso alterei seu persistence unit name para DEFAULT, assim o Vraptor pode gerenciar todo o contexto JPA automatico. Dê mais uma olhada aqui: http://vraptor.caelum.com.br/documentacao/componentes-utilitarios-opcionais/ . Para que o Vraptor controle todo o JPA para você, injetando automagicamente seu entity-manager basta colocar isso no seu XML:

<context-param> <param-name>br.com.caelum.vraptor.provider</param-name> <param-value>br.com.caelum.vraptor.util.jpa.JPACustomProvider</param-value> </context-param>

Assim basta quando vocẽ quiser usar o JPA injetar via construtor a EntityManager.

E finalmente o persistence.xml

<?xml version="1.0" encoding="UTF-8"?> <persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence"> <persistence-unit name="Imobiliaria"> <provider>org.hibernate.ejb.HibernatePersistence</provider> <properties> <property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect" /> <property name="hibernate.connection.url" value="jdbc:postgresql://localhost/sgi" /> <property name="hibernate.connection.driver_class" value="org.postgresql.Driver" /> <property name="hibernate.connection.password" value="senha" /> <property name="hibernate.connection.username" value="postgres" /> <property name="hibernate.hbm2ddl.auto" value="update" /> </properties> </persistence-unit> </persistence>

Desculpe se não consegui expliar direito (hora do almoço, hehe). Qualquer coisa pergunte.

Beleza Garcia, ficou assim a estrutura:

Coloquei o persistence.xml na META-INF conforme é mostrado no Google.

O persistence.xml está assim:

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence">
    <persistence-unit name="default">
    <provider>org.hibernate.ejb.HibernatePersistence</provider>
    	<class>br.com.imobiliaria.bean.Usuario</class>
        <class>br.com.imobiliaria.bean.Filme</class>    
        <properties>
            <property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect" />
            <property name="hibernate.connection.url" value="jdbc:postgresql://localhost/sgi" />
            <property name="hibernate.connection.driver_class" value="org.postgresql.Driver" />
            <property name="hibernate.connection.password" value="senha" />
            <property name="hibernate.connection.username" value="postgres" />
            <property name="hibernate.hbm2ddl.auto" value="update" />
            <property name="hibernate.show_sql" value="true"/>
            <property name="hibernate.format_sql" value="true"/>
            <property name="hibernate.query.substitutions" value="true=1, false=0"/>
			<property name="hibernate.cache.use_second_level_cache" value="true"/>
            <property name="hibernate.cache.provider_class" value="org.hibernate.cache.EhCacheProvider"/>            
        </properties>
</persistence-unit>
</persistence>

O log4j.xml está assim:

<?xml version="1.0" encoding="UTF-8"  ?>  
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">  
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">  
         
<appender name="stdout" class="org.apache.log4j.ConsoleAppender">  
<layout class="org.apache.log4j.PatternLayout">  
<param name="ConversionPattern" value="%d{HH:mm:ss,SSS} %5p [%-20c{1}] %m%n"/>  
</layout>  
</appender>    
  
<category name="com.thoughtworks">  
<priority value="INFO" />  
<appender-ref ref="stdout" />  
</category>  
              
<category name="br.com.caelum.vraptor">  
<priority value="INFO" />  
<appender-ref ref="stdout" />  
</category>  
        
<category name="org.springframework">  
<priority value="INFO" />  
<appender-ref ref="stdout" />  
</category>  

<category name="org.hibernate">    
<priority value="INFO" />    
<appender-ref ref="stdout" />    
</category>  
   
</log4j:configuration> 

Eu iniciando o server pelo Eclipse e ele deveria criar as tabelas?

Vi agora seu último post, estou olhando aqui.

Sim, ele deve criar as tabelas e inclusive se a tabela já existir ele verifica os campos e cria se necessário.

Não esqueça de verificar se o erro do log4j.xml ainda persiste, e caso positivo, veja se o log4j.xml está sendo copiado para o web-inf/classes

Pelo que entendi então tá td no esquema.

Persistence.xml dentro de Webcontent/META-INF/:

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence">
    <persistence-unit name="default">
    <provider>org.hibernate.ejb.HibernatePersistence</provider>  
        <properties>
            <property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect" />
            <property name="hibernate.connection.url" value="jdbc:postgresql://localhost/imobiliaria" />
            <property name="hibernate.connection.driver_class" value="org.postgresql.Driver" />
            <property name="hibernate.connection.password" value="dimeola" />
            <property name="hibernate.connection.username" value="postgres" />
            <property name="hibernate.hbm2ddl.auto" value="update" />
            <property name="hibernate.show_sql" value="true"/>
            <property name="hibernate.format_sql" value="true"/>          
        </properties>
</persistence-unit>
</persistence>

Classes anotadas com @Entity (import javax.persistence.Entity;).

No print que postei aparece o log4j.xml na /src, então beleza.

O erro que dá referente ao log4j.xml é este:

log4j:WARN No appenders could be found for logger (br.com.bronx.vraptor.restrictrex.startup.PageHandler).
log4j:WARN Please initialize the log4j system properly.

Injetei no web.xml:

<context-param>  
    <param-name>br.com.caelum.vraptor.provider</param-name>  
    <param-value>br.com.caelum.vraptor.util.jpa.JPACustomProvider</param-value>  
    </context-param>

A saida completa do console é esta:

NFO: Initializing Coyote HTTP/1.1 on http-8080
17/04/2010 14:42:31 org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 979 ms
17/04/2010 14:42:31 org.apache.catalina.core.StandardService start
INFO: Starting service Catalina
17/04/2010 14:42:31 org.apache.catalina.core.StandardEngine start
INFO: Starting Servlet Engine: Apache Tomcat/6.0.26
14:42:31,954  INFO [VRaptorApplicationContext] Refreshing Root WebApplicationContext: startup date [Sat Apr 17 14:42:31 BRT 2010]; root of context hierarchy
14:42:32,278  INFO [VRaptorApplicationContext] Scanning WEB-INF/classes: /home/bruno/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp2/wtpwebapps/Imobiliaria/WEB-INF/classes
14:42:32,497  INFO [VRaptorApplicationContext] Scanning packages from WEB-INF/classes and jars: [br.com.bronx.vraptor.restrictrex]
14:42:32,550  INFO [DefaultListableBeanFactory] Overriding bean definition for bean 'org.springframework.context.annotation.internalAutowiredAnnotationProcessor': replacing [Root bean: class [org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null] with [Root bean: class [br.com.caelum.vraptor.ioc.spring.InjectionBeanPostProcessor]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null]
14:42:32,932  INFO [DefaultListableBeanFactory] Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@778255: defining beans [defaultRoutes,XStreamXMLDeserializer,defaultDeserializers,defaultMultipartConfig,encodingHandlerFactory,defaultMethodNotAllowedHandler,defaultResourceTranslator,defaultTypeNameExtractor,paranamerNameProvider,defaultInterceptorRegistry,defaultRouter,asmBasedTypeCreator,defaultTypeFinder,pathAnnotationRoutesParser,defaultResourceNotFoundHandler,objenesisProxifier,emptyElementsRemoval,defaultConverters,defaultAcceptHeaderToFormat,noRoutesConfiguration,stereotypeHandler,converterHandler,interceptorStereotypeHandler,deserializesHandler,stereotypedBeansRegistrar,defaultSpringLocator,outjectResult,defaultPathResolver,jstlLocalization,resourceLookupInterceptor,defaultRepresentationResult,defaultStatus,replicatorOutjector,applicationConfiguration,defaultMethodInfo,defaultLogicResult,defaultResult,defaultPageResult,flashInterceptor,XStreamJSONSerialization,defaultRefererResult,downloadInterceptor,multipartInterceptor,defaultValidationViewsFactory,ognlParametersProvider,parametersInstantiatorInterceptor,interceptorListPriorToExecutionExtractor,XStreamXMLSerialization,emptyResult,forwardToDefaultViewInterceptor,executeMethodInterceptor,defaultHttpResult,deserializingInterceptor,defaultFormatResolver,defaultValidator,instantiateInterceptor,bigDecimalConverter,bigIntegerConverter,booleanConverter,byteConverter,characterConverter,doubleConverter,enumConverter,floatConverter,integerConverter,localeBasedCalendarConverter,localeBasedDateConverter,longConverter,primitiveBooleanConverter,primitiveByteConverter,primitiveCharConverter,primitiveDoubleConverter,primitiveFloatConverter,primitiveIntConverter,primitiveLongConverter,primitiveShortConverter,shortConverter,uploadedFileConverter,VRaptorRequestProvider,httpServletRequestProvider,httpServletResponseProvider,httpSessionProvider,defaultRequestExecution,defaultInterceptorStack,entityManagerCreator,entityManagerFactoryCreator,JPATransactionInterceptor,usuarioDAO,imovelDAO,loginController,indexController,imagemController,homeController,imovelController,accesControllerInterceptor,imagens,usuarioLogado,org.springframework.context.annotation.internalConfigurationAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor,restrictionChecker,pageHandler,org.springframework.aop.config.internalAutoProxyCreator,cacheBasedTypeCreator]; root of factory hierarchy
14:42:33,146  INFO [DefaultConverters   ] Registering bundled converters
14:42:33,319  INFO [RouteBuilder        ] /login                                                       -> LoginController.login()
14:42:33,326  INFO [RouteBuilder        ] /login/adiciona                                              -> LoginController.adiciona(Usuario)
14:42:33,327  INFO [RouteBuilder        ] /login/autentica                                             -> LoginController.autentica(Usuario)
14:42:33,328  INFO [RouteBuilder        ] /login/logout                                                -> LoginController.logout()
log4j:WARN No appenders could be found for logger (br.com.bronx.vraptor.restrictrex.startup.PageHandler).
log4j:WARN Please initialize the log4j system properly.
14:42:33,370  INFO [RouteBuilder        ] /index/lista                                                 -> IndexController.lista()
14:42:33,371  INFO [RouteBuilder        ] /index                                                       -> IndexController.index()
14:42:33,376  INFO [RouteBuilder        ] /filme/{filme.id}/imagem                                     -> ImagemController.upload(Imovel, UploadedFile)
14:42:33,383  INFO [RouteBuilder        ] /filme/{filme.id}/imagem                                     -> ImagemController.download(Imovel)
14:42:33,384  INFO [RouteBuilder        ] /home                                                        -> HomeController.home()
14:42:33,385  INFO [RouteBuilder        ] /imovel/adiciona                                             -> ImovelController.adiciona(Imovel)
14:42:33,386  INFO [RouteBuilder        ] /imovel/lista                                                -> ImovelController.lista()
14:42:33,386  INFO [RouteBuilder        ] /imovel/edita                                                -> ImovelController.edita(Long)
14:42:33,387  INFO [RouteBuilder        ] /imovel                                                      -> ImovelController.formulario()
14:42:33,388  INFO [RouteBuilder        ] /imovel/altera                                               -> ImovelController.altera(Imovel)
14:42:33,395  INFO [RouteBuilder        ] /imovel/remove                                               -> ImovelController.remove(Long)
14:42:33,398  INFO [VRaptor             ] VRaptor 3.1.1 successfuly initialized
14:42:33,832  INFO [VRaptorApplicationContext] Refreshing Root WebApplicationContext: startup date [Sat Apr 17 14:42:33 BRT 2010]; root of context hierarchy
14:42:34,089  INFO [VRaptorApplicationContext] Scanning WEB-INF/classes: /home/bruno/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp2/wtpwebapps/JMovie/WEB-INF/classes
14:42:34,315  INFO [VRaptorApplicationContext] Scanning packages from WEB-INF/classes and jars: [br.com.bronx.vraptor.restrictrex]
14:42:34,366  INFO [DefaultListableBeanFactory] Overriding bean definition for bean 'org.springframework.context.annotation.internalAutowiredAnnotationProcessor': replacing [Root bean: class [org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null] with [Root bean: class [br.com.caelum.vraptor.ioc.spring.InjectionBeanPostProcessor]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null]
14:42:34,740  INFO [DefaultListableBeanFactory] Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@16b321b: defining beans [defaultMultipartConfig,defaultDeserializers,asmBasedTypeCreator,defaultConverters,paranamerNameProvider,pathAnnotationRoutesParser,encodingHandlerFactory,noRoutesConfiguration,objenesisProxifier,defaultTypeNameExtractor,defaultResourceNotFoundHandler,defaultMethodNotAllowedHandler,emptyElementsRemoval,defaultAcceptHeaderToFormat,defaultRouter,XStreamXMLDeserializer,defaultInterceptorRegistry,defaultRoutes,defaultTypeFinder,defaultResourceTranslator,stereotypeHandler,converterHandler,interceptorStereotypeHandler,deserializesHandler,stereotypedBeansRegistrar,defaultSpringLocator,multipartInterceptor,forwardToDefaultViewInterceptor,instantiateInterceptor,defaultStatus,executeMethodInterceptor,defaultValidator,defaultPathResolver,jstlLocalization,ognlParametersProvider,defaultPageResult,flashInterceptor,parametersInstantiatorInterceptor,defaultValidationViewsFactory,downloadInterceptor,interceptorListPriorToExecutionExtractor,deserializingInterceptor,XStreamJSONSerialization,defaultLogicResult,defaultHttpResult,XStreamXMLSerialization,applicationConfiguration,defaultResult,defaultRefererResult,outjectResult,defaultMethodInfo,resourceLookupInterceptor,defaultOutjector,emptyResult,defaultRepresentationResult,defaultFormatResolver,bigDecimalConverter,bigIntegerConverter,booleanConverter,byteConverter,characterConverter,doubleConverter,enumConverter,floatConverter,integerConverter,localeBasedCalendarConverter,localeBasedDateConverter,longConverter,primitiveBooleanConverter,primitiveByteConverter,primitiveCharConverter,primitiveDoubleConverter,primitiveFloatConverter,primitiveIntConverter,primitiveLongConverter,primitiveShortConverter,shortConverter,uploadedFileConverter,VRaptorRequestProvider,httpServletRequestProvider,httpServletResponseProvider,httpSessionProvider,defaultRequestExecution,defaultInterceptorStack,generoDAO,usuarioDAO,filmeDAO,imagemDAO,loginController,filmeController,generoController,indexController,imagemController,homeController,accesControllerInterceptor,filmeLogic,imagens,usuarioLogado,org.springframework.context.annotation.internalConfigurationAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor,restrictionChecker,pageHandler,org.springframework.aop.config.internalAutoProxyCreator,cacheBasedTypeCreator]; root of factory hierarchy
14:42:35,054  INFO [DefaultConverters   ] Registering bundled converters
14:42:35,180  INFO [RouteBuilder        ] /login/adiciona --> public void br.com.bruno.jmovie.controller.LoginController.adiciona(br.com.bruno.jmovie.model.Usuario)
14:42:35,181  INFO [RouteBuilder        ] /login/autentica --> public void br.com.bruno.jmovie.controller.LoginController.autentica(br.com.bruno.jmovie.model.Usuario)
14:42:35,182  INFO [RouteBuilder        ] /login/logout --> public void br.com.bruno.jmovie.controller.LoginController.logout()
14:42:35,187  INFO [RouteBuilder        ] /login --> public void br.com.bruno.jmovie.controller.LoginController.loginUsuario()
14:42:35,187  INFO [RouteBuilder        ] /usuario --> public void br.com.bruno.jmovie.controller.LoginController.novo()
log4j:WARN No appenders could be found for logger (br.com.bronx.vraptor.restrictrex.startup.PageHandler).
log4j:WARN Please initialize the log4j system properly.
14:42:35,244  INFO [RouteBuilder        ] /filme/adiciona --> public void br.com.bruno.jmovie.controller.FilmeController.adiciona(br.com.bruno.jmovie.model.Filme)
14:42:35,244  INFO [RouteBuilder        ] /filme/lista --> public void br.com.bruno.jmovie.controller.FilmeController.lista()
14:42:35,247  INFO [RouteBuilder        ] /filme/edita --> public void br.com.bruno.jmovie.controller.FilmeController.edita(java.lang.Integer)
14:42:35,247  INFO [RouteBuilder        ] /filme --> public void br.com.bruno.jmovie.controller.FilmeController.formulario()
14:42:35,248  INFO [RouteBuilder        ] /filme/altera --> public void br.com.bruno.jmovie.controller.FilmeController.altera(br.com.bruno.jmovie.model.Filme)
14:42:35,249  INFO [RouteBuilder        ] /filme/remove --> public void br.com.bruno.jmovie.controller.FilmeController.remove(java.lang.Integer)
14:42:35,251  INFO [RouteBuilder        ] /genero/adiciona --> public void br.com.bruno.jmovie.controller.GeneroController.adiciona(br.com.bruno.jmovie.model.Genero)
14:42:35,252  INFO [RouteBuilder        ] /genero/lista --> public java.util.List br.com.bruno.jmovie.controller.GeneroController.lista()
14:42:35,252  INFO [RouteBuilder        ] /genero --> public void br.com.bruno.jmovie.controller.GeneroController.formulario()
14:42:35,253  INFO [RouteBuilder        ] /genero/remove --> public void br.com.bruno.jmovie.controller.GeneroController.remove(java.lang.Long)
14:42:35,254  INFO [RouteBuilder        ] /index/lista --> public void br.com.bruno.jmovie.controller.IndexController.lista()
14:42:35,255  INFO [RouteBuilder        ] /index --> public void br.com.bruno.jmovie.controller.IndexController.index()
14:42:35,301  INFO [RouteBuilder        ] /filme/{filme.id}/imagem --> public void br.com.bruno.jmovie.controller.ImagemController.upload(br.com.bruno.jmovie.model.Filme,br.com.caelum.vraptor.interceptor.multipart.UploadedFile)
14:42:35,305  INFO [RouteBuilder        ] /filme/{filme.id}/imagem --> public java.io.File br.com.bruno.jmovie.controller.ImagemController.download(br.com.bruno.jmovie.model.Filme)
14:42:35,309  INFO [RouteBuilder        ] /home --> public void br.com.bruno.jmovie.controller.HomeController.home()
14:42:35,318  INFO [VRaptor             ] VRaptor 3 successfuly initialized
17/04/2010 14:42:35 org.apache.coyote.http11.Http11Protocol start
INFO: Starting Coyote HTTP/1.1 on http-8080
17/04/2010 14:42:35 org.apache.jk.common.ChannelSocket init
INFO: JK: ajp13 listening on /0.0.0.0:8009
17/04/2010 14:42:35 org.apache.jk.server.JkMain start
INFO: Jk running ID=0 time=0/68  config=null
17/04/2010 14:42:35 org.apache.catalina.startup.Catalina start
INFO: Server startup in 4593 ms

Pelo que li no site da Caelum, esse provider já existe, basta apenas injetar o contexto dele no web.xml, foi feito.
Iniciei o server mas não criou nada. Olhei dentro de WEB-INF/classes e não têm nada. =/
O persistence.xml fica dentro ou fora da /src?

O persistence.xml deve ficar dentro do /src/META-INF/persistence.xml. Quaisquer arquivos do genero como o orm.xml deve ficar no mesmo local. A única consideração é quando você tem um Enterprise Project, que nesse caso você deve colocar no mesmo local, porém dentro do módulo EJB.

Isso mesmo :slight_smile:

Isso já é algum erro do Eclipse. Você precisa ver se ele está compilando tudo certinho, derepente um Clean all seguido de um Build all pode ajudar.

Ficou assim a árvore:

Mandei um clean work directory no server e nada. O estranho é que pela saida do console, ele continua não achando o log4j.xml que está na /src.

Sua estrutura de diretórios está correta. O que me chamou atenção foi que o logging do Vraptor está OK , note que aparecem logs do Vraptor.

Porém há um erro (abaixo) que informa que o log4j não está sendo encontrado, ou seja, tem algo errado é nesse cara aí:

Vocẽ pode mandar um print das suas libraries ou então colocar a lista delas aqui?