VRaptor3 e Hibernate 3.5 - Problemas com log4j [Resolvido]

32 respostas
Guevara

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!

32 Respostas

Lucas_Cavalcanti

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…

Guevara

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.

Lucas_Cavalcanti

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

Guevara

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);
	}

}
Lucas_Cavalcanti

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:

Guevara

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
Lucas_Cavalcanti

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

G

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

Lavieri
Guevara:
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);
	}

}

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

G

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).

Guevara

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!

G

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.

G

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.

Guevara

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.

G

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

Guevara

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?

G

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.

Guevara

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.

G

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?

Guevara

Opa, ai está o print.

G

Está tudo certo com suas libs. Te pedi o print porque o vraptor, hibernate e spring usam uma façade para logging chamada SLF4J. Ela na verdade é apenas uma série de interfaces de logging (note o jar slf4j-api). Se você quiser usar o log4j precisa colocar o jar do log4j, commons-logging (ou um pseudo-commons-logging que vem com o SLF4J) e também o jar que faz o delegate para a sua implementação de logging (note agora o jar slf4j-log4j.jar).

Mas pelo que notei está tudo certo. O erro está mesmo que o logging para o projeto do Bronx não está sendo inicializado. O ideal é conversar com ele para ver o que está acontecendo.

De qualquer forma a sua aplicação está subindo e está gerando os logs do Vraptor corretamente. Tente acessar sua aplicação e ver o que aparece. Creio que tudo vá funcionar sem problemas. Não dá ainda para ver os logs do Hibernate, e nem mesmo suas tabelas foram criadas porque o Vraptor sobe o JPA com um could-start, ou seja, apenas no primeiro acesso, e não quando a aplicação inicializa.

Abraços

Guevara

Um detalhe, quando criei o persistence.xml fui lá em new>XML, mas pesquisando aqui no Google, esse arquivo deve ser criado em new>other>JPA>Mapping file.
Fonte: http://www.edsongoncalves.com.br/2010/02/03/jpa-2-0-na-pratica-parte-2/

Mas essa opção está desabilitada.

Agora tô tomando erro 404 ao acessar a aplicação em http://localhost:8080/Imobiliaria, e antes estava rodando. =/

G

Não é que DEVE ser criado, ele pode ser criado pelo assistente do eclipse.

Sobre não rodar a aplicaçaõ, você pode ver o que aparece no log, excetuando aquela mensagem do projeto do bronx?

Guevara

O pior é que não diz nada, além daquele erro do plugin do Bronx:

INFO: Initializing Coyote HTTP/1.1 on http-8080
17/04/2010 16:38:01 org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 927 ms
17/04/2010 16:38:02 org.apache.catalina.core.StandardService start
INFO: Starting service Catalina
17/04/2010 16:38:02 org.apache.catalina.core.StandardEngine start
INFO: Starting Servlet Engine: Apache Tomcat/6.0.26
16:38:02,939  INFO [VRaptorApplicationContext] Refreshing Root WebApplicationContext: startup date [Sat Apr 17 16:38:02 BRT 2010]; root of context hierarchy
16:38:03,264  INFO [VRaptorApplicationContext] Scanning WEB-INF/classes: /home/bruno/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp2/wtpwebapps/Imobiliaria/WEB-INF/classes
16:38:03,488  INFO [VRaptorApplicationContext] Scanning packages from WEB-INF/classes and jars: [br.com.bronx.vraptor.restrictrex]
16:38:03,544  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]
16:38:03,923  INFO [DefaultListableBeanFactory] Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@147358f: defining beans [defaultTypeFinder,asmBasedTypeCreator,defaultTypeNameExtractor,defaultDeserializers,defaultAcceptHeaderToFormat,defaultInterceptorRegistry,defaultResourceNotFoundHandler,emptyElementsRemoval,pathAnnotationRoutesParser,defaultRouter,defaultMethodNotAllowedHandler,defaultConverters,defaultRoutes,encodingHandlerFactory,noRoutesConfiguration,XStreamXMLDeserializer,objenesisProxifier,defaultResourceTranslator,paranamerNameProvider,defaultMultipartConfig,stereotypeHandler,converterHandler,interceptorStereotypeHandler,deserializesHandler,stereotypedBeansRegistrar,defaultSpringLocator,defaultStatus,XStreamJSONSerialization,defaultValidator,outjectResult,defaultRepresentationResult,executeMethodInterceptor,defaultHttpResult,defaultRefererResult,downloadInterceptor,defaultPathResolver,deserializingInterceptor,applicationConfiguration,defaultResult,flashInterceptor,parametersInstantiatorInterceptor,replicatorOutjector,defaultMethodInfo,resourceLookupInterceptor,XStreamXMLSerialization,ognlParametersProvider,defaultFormatResolver,forwardToDefaultViewInterceptor,interceptorListPriorToExecutionExtractor,defaultLogicResult,defaultValidationViewsFactory,instantiateInterceptor,multipartInterceptor,emptyResult,defaultPageResult,jstlLocalization,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,defaultInterceptorStack,defaultRequestExecution,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
16:38:04,136  INFO [DefaultConverters   ] Registering bundled converters
16:38:04,309  INFO [RouteBuilder        ] /login                                                       -> LoginController.login()
16:38:04,318  INFO [RouteBuilder        ] /login/adiciona                                              -> LoginController.adiciona(Usuario)
16:38:04,318  INFO [RouteBuilder        ] /login/autentica                                             -> LoginController.autentica(Usuario)
16:38:04,319  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.
16:38:04,365  INFO [RouteBuilder        ] /index/lista                                                 -> IndexController.lista()
16:38:04,366  INFO [RouteBuilder        ] /index                                                       -> IndexController.index()
16:38:04,374  INFO [RouteBuilder        ] /filme/{filme.id}/imagem                                     -> ImagemController.upload(Imovel, UploadedFile)
16:38:04,379  INFO [RouteBuilder        ] /filme/{filme.id}/imagem                                     -> ImagemController.download(Imovel)
16:38:04,380  INFO [RouteBuilder        ] /home                                                        -> HomeController.home()
16:38:04,381  INFO [RouteBuilder        ] /imovel/adiciona                                             -> ImovelController.adiciona(Imovel)
16:38:04,382  INFO [RouteBuilder        ] /imovel/lista                                                -> ImovelController.lista()
16:38:04,383  INFO [RouteBuilder        ] /imovel/edita                                                -> ImovelController.edita(Long)
16:38:04,387  INFO [RouteBuilder        ] /imovel                                                      -> ImovelController.formulario()
16:38:04,391  INFO [RouteBuilder        ] /imovel/altera                                               -> ImovelController.altera(Imovel)
16:38:04,392  INFO [RouteBuilder        ] /imovel/remove                                               -> ImovelController.remove(Long)
16:38:04,393  INFO [VRaptor             ] VRaptor 3.1.1 successfuly initialized
17/04/2010 16:38:04 org.apache.coyote.http11.Http11Protocol start
INFO: Starting Coyote HTTP/1.1 on http-8080
17/04/2010 16:38:04 org.apache.jk.common.ChannelSocket init
INFO: JK: ajp13 listening on /0.0.0.0:8009
17/04/2010 16:38:04 org.apache.jk.server.JkMain start
INFO: Jk running ID=0 time=0/54  config=null
17/04/2010 16:38:04 org.apache.catalina.startup.Catalina start
INFO: Server startup in 2584 ms

Não faz sentido, já que no meu IndexController está:

@Path("/index")
	public void index() {
	}

O caminho jsp/index/index.jsp existe e na saida ele mostra que achou, mas ao acessar me dá o erro 404.

G

Quando você acessa a aplicação nenhum log é gerado além daquele Server startup in xxx ms?

E se você remover esse projeto do bronx temporariamente?

Guevara

Garcia! Consegui gerar as tabelas seguindo a dica do link que postei:

http://www.edsongoncalves.com.br/2010/02/03/jpa-2-0-na-pratica-parte-2/

Criei a classe TesteDeJPA com o conteúdo:

package br.com.imobiliaria.hibernate;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;

public class TesteDaJPA {
	public static void main(String[] args) {
	EntityManagerFactory emf = Persistence.createEntityManagerFactory("default");
	EntityManager em = emf.createEntityManager();
	em.close();
	emf.close();
	 }
	}

Depois rodei essa classe em “Run>As Java Aplication”. Virou a minha classe GeraTabela que eu tinha antes.
Só consegui dessa forma, pq no automágicamente não foi. =/

Ainda estou tomando erro 404 aqui e o console nem pra dar uma pista.

Guevara

Opa! Parece que consegui uma pista:

17/04/2010 17:10:45 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: /usr/lib/jvm/java-6-sun-1.6.0.16/jre/lib/i386/client:/usr/lib/jvm/java-6-sun-1.6.0.16/jre/lib/i386:/usr/lib/jvm/java-6-sun-1.6.0.16/jre/../lib/i386:/usr/lib/jvm/java-6-sun-1.6.0.16/jre/lib/i386/client:/usr/lib/jvm/java-6-sun-1.6.0.16/jre/lib/i386:/usr/lib/xulrunner-addons:/usr/lib/xulrunner-addons:/usr/java/packages/lib/i386:/lib:/usr/lib
17/04/2010 17:10:46 org.apache.tomcat.util.digester.SetPropertiesRule begin
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:Imobiliaria' did not find a matching property.
17/04/2010 17:10:46 org.apache.coyote.http11.Http11Protocol init
INFO: Initializing Coyote HTTP/1.1 on http-8080
17/04/2010 17:10:46 org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 868 ms
17/04/2010 17:10:46 org.apache.catalina.core.StandardService start
INFO: Starting service Catalina
17/04/2010 17:10:46 org.apache.catalina.core.StandardEngine start
INFO: Starting Servlet Engine: Apache Tomcat/6.0.26

Não consegui interpretar esta mensagem, tá pedindo pra configurar source de que?

Setting property 'source' to 'org.eclipse.jst.jee.server:Imobiliaria' did not find a matching property.
G

Guevara, vamos por partes. Na verdade a classe que você roda via Run AS não é necessária, pois o vraptor cria isso para você. Porém isso não aconteceu porque, conforme expliquei logo mais acima, o Vraptor possui um cloud start, ou seja, a inicialização dele somente acontece quando você faz um primeiro acesso à aplicação. Ou seja, você faz deploy da aplicação, e quando você realmente acessar o vraptor vai subir os componentes, e então ele vai inicializar o JPA Factory e consecutivamente criar suas tabelas.

POREM, algum erro está acontecendo que sua aplicação inicializa, porém não o vraptor. E é isso que estou tentando entender o porque, já que aparentemente está tudo certo. Vamos fazer um teste? Remova o projeto de controle de acesso do bronx de seu projeto e tenta subir de novo e acessar sua aplicação.

Lembre-se de que Imobiliaria não é o mesmo que imobiliaria para um site no tomcat.

Sobre o WARN do eclipse, você pode ignorar isso, pois não é a causa do problema.

Outra questão importante: mostre aqui eu web.xml, pois acho que estamos tendo um conflito de componentes entre o projeto do bronx e o JPA Factory. Anexe ele aqui.

Guevara

Agora entendi, a criação das tabelas se dá quando chamo a aplicação no browser então. =)

Meu web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<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>vraptor-blank-project</display-name>

 		
	<context-param>  
        <param-name>br.com.caelum.vraptor.packages</param-name>  
        <param-value>br.com.bronx.vraptor.restrictrex</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>		
		
	<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>
</web-app>

Enquanto isso vou removendo o que existe do plugin do Bronx pra ver se sobe.

Guevara

Consegui Garcia! :smiley:
Não era o plugin do Bronx, era o @Path da Index mesmo:

@Path("/")
	public void index() {
	}

Antes estava @Path("/index"), e o pior é que estava funcionando assim. =/

O erro referente ao plugin continua, mas ai é com o Bronx, tô esperando ele postar lá no tópico pra ver o que pode ser.
Obrigado pela ajuda!!
Abraço!!

G

Mas que beleza :smiley:

Faz um teste… faz um drop nas tabelas do banco e acompanha no log ele criando as tabelas. Logo depois adiciona um campo em uma tabela qualquer para ver ele atualizar o DDL do banco. Quanto a isso, inclusive há mais opções como fazer DROP-CREATE de todo o banco toda fez que a aplicação sobe, muito bom quando vocẽ quer fazer algum teste automatizado.

Guevara

Funcionou!!! :lol:

INFO: Server startup in 4923 ms
20:55:13,496  INFO [Version             ] Hibernate Annotations 3.5.0-Final
20:55:13,653  INFO [Environment         ] Hibernate 3.5.0-Final
20:55:13,676  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.hbm2ddl.auto=update, hibernate.connection.url=jdbc:postgresql://localhost/imobiliaria, hibernate.show_sql=true, hibernate.bytecode.use_reflection_optimizer=false, hibernate.connection.password=****, hibernate.jdbc.batch_versioned_data=true, hibernate.connection.pool_size=1}
20:55:13,688  INFO [Environment         ] using java.io streams to persist binary types
20:55:13,689  INFO [Environment         ] Bytecode provider name : javassist
20:55:13,716  INFO [Environment         ] using JDK 1.4 java.sql.Timestamp handling
20:55:14,193  INFO [Version             ] Hibernate Commons Annotations 3.2.0.Final
20:55:14,212  INFO [Version             ] Hibernate EntityManager 3.5.0-Final
20:55:15,028  INFO [AnnotationBinder    ] Binding entity from annotated class: br.com.imobiliaria.bean.Imovel
20:55:15,173  INFO [EntityBinder        ] Bind entity br.com.imobiliaria.bean.Imovel on table Imovel
20:55:15,287  INFO [AnnotationBinder    ] Binding entity from annotated class: br.com.imobiliaria.bean.Usuario
20:55:15,288  INFO [EntityBinder        ] Bind entity br.com.imobiliaria.bean.Usuario on table Usuario
20:55:15,296  INFO [AnnotationConfiguration] Hibernate Validator not found: ignoring
20:55:15,363  INFO [HibernateSearchEventListenerRegister] Unable to find org.hibernate.search.event.FullTextIndexEventListener on the classpath. Hibernate Search is not enabled.
20:55:15,498  INFO [DriverManagerConnectionProvider] Using Hibernate built-in connection pool (not for production use!)
20:55:15,498  INFO [DriverManagerConnectionProvider] Hibernate connection pool size: 1
20:55:15,499  INFO [DriverManagerConnectionProvider] autocommit mode: true
20:55:15,539  INFO [DriverManagerConnectionProvider] using driver: org.postgresql.Driver at URL: jdbc:postgresql://localhost/imobiliaria
20:55:15,539  INFO [DriverManagerConnectionProvider] connection properties: {user=postgres, password=****, autocommit=true, release_mode=auto}
20:55:15,701  INFO [SettingsFactory     ] RDBMS: PostgreSQL, version: 8.3.10
20:55:15,702  INFO [SettingsFactory     ] JDBC driver: PostgreSQL Native Driver, version: PostgreSQL 8.4 JDBC4 (build 701)
20:55:15,852  INFO [Dialect             ] Using dialect: org.hibernate.dialect.PostgreSQLDialect
20:55:15,877  INFO [JdbcSupportLoader   ] Disabling contextual LOB creation as createClob() method threw error : java.lang.reflect.InvocationTargetException
20:55:15,879  INFO [TransactionFactoryFactory] Transaction strategy: org.hibernate.transaction.JDBCTransactionFactory
20:55:15,881  INFO [TransactionManagerLookupFactory] No TransactionManagerLookup configured (in JTA environment, use of read-write or transactional second-level cache is not recommended)
20:55:15,881  INFO [SettingsFactory     ] Automatic flush during beforeCompletion(): disabled
20:55:15,881  INFO [SettingsFactory     ] Automatic session close at end of transaction: disabled
20:55:15,882  INFO [SettingsFactory     ] JDBC batch size: 15
20:55:15,882  INFO [SettingsFactory     ] JDBC batch updates for versioned data: enabled
20:55:15,889  INFO [SettingsFactory     ] Scrollable result sets: enabled
20:55:15,889  INFO [SettingsFactory     ] JDBC3 getGeneratedKeys(): enabled
20:55:15,889  INFO [SettingsFactory     ] Connection release mode: auto
20:55:15,890  INFO [SettingsFactory     ] Maximum outer join fetch depth: 1
20:55:15,891  INFO [SettingsFactory     ] Default batch fetch size: 1
20:55:15,891  INFO [SettingsFactory     ] Generate SQL with comments: disabled
20:55:15,891  INFO [SettingsFactory     ] Order SQL updates by primary key: disabled
20:55:15,891  INFO [SettingsFactory     ] Order SQL inserts for batching: disabled
20:55:15,891  INFO [SettingsFactory     ] Query translator: org.hibernate.hql.ast.ASTQueryTranslatorFactory
20:55:15,898  INFO [ASTQueryTranslatorFactory] Using ASTQueryTranslatorFactory
20:55:15,898  INFO [SettingsFactory     ] Query language substitutions: {yes='Y', no='N'}
20:55:15,898  INFO [SettingsFactory     ] JPA-QL strict compliance: enabled
20:55:15,898  INFO [SettingsFactory     ] Second-level cache: enabled
20:55:15,898  INFO [SettingsFactory     ] Query cache: disabled
20:55:15,939  INFO [SettingsFactory     ] Cache region factory : org.hibernate.cache.impl.bridge.RegionFactoryCacheProviderBridge
20:55:15,939  INFO [RegionFactoryCacheProviderBridge] Cache provider: org.hibernate.cache.HashtableCacheProvider
20:55:15,941  INFO [SettingsFactory     ] Optimize cache for minimal puts: disabled
20:55:15,941  INFO [SettingsFactory     ] Cache region prefix: hibernate.test
20:55:15,941  INFO [SettingsFactory     ] Structured second-level cache entries: disabled
20:55:15,958  INFO [SettingsFactory     ] Echoing all SQL to stdout
20:55:15,959  INFO [SettingsFactory     ] Statistics: disabled
20:55:15,960  INFO [SettingsFactory     ] Deleted entity synthetic identifier rollback: disabled
20:55:15,960  INFO [SettingsFactory     ] Default entity-mode: pojo
20:55:15,960  INFO [SettingsFactory     ] Named query checking : enabled
20:55:15,960  INFO [SettingsFactory     ] Check Nullability in Core (should be disabled when Bean Validation is on): enabled
20:55:16,096  INFO [SessionFactoryImpl  ] building session factory
20:55:16,495  INFO [SessionFactoryObjectFactory] Not binding factory to JNDI, no JNDI name configured
20:55:16,517  INFO [SchemaUpdate        ] Running hbm2ddl schema update
20:55:16,517  INFO [SchemaUpdate        ] fetching database metadata
20:55:16,578  INFO [SchemaUpdate        ] updating schema
20:55:16,591  INFO [DatabaseMetadata    ] table not found: Imovel
20:55:16,596  INFO [DatabaseMetadata    ] table not found: Usuario
20:55:16,612  INFO [DatabaseMetadata    ] table not found: Imovel
20:55:16,616  INFO [DatabaseMetadata    ] table not found: Usuario
20:55:16,758  INFO [SchemaUpdate        ] schema update complete
20:55:17,149  INFO [HibernateSearchEventListenerRegister] Unable to find org.hibernate.search.event.FullTextIndexEventListener on the classpath. Hibernate Search is not enabled.
20:55:17,149  INFO [AnnotationBinder    ] Binding entity from annotated class: br.com.imobiliaria.bean.Usuario
20:55:17,150  INFO [EntityBinder        ] Bind entity br.com.imobiliaria.bean.Usuario on table Usuario
20:55:17,152  INFO [AnnotationBinder    ] Binding entity from annotated class: br.com.imobiliaria.bean.Imovel
20:55:17,152  INFO [EntityBinder        ] Bind entity br.com.imobiliaria.bean.Imovel on table Imovel
20:55:17,159  INFO [AnnotationConfiguration] Hibernate Validator not found: ignoring
20:55:17,161  INFO [DriverManagerConnectionProvider] Using Hibernate built-in connection pool (not for production use!)
20:55:17,161  INFO [DriverManagerConnectionProvider] Hibernate connection pool size: 1
20:55:17,161  INFO [DriverManagerConnectionProvider] autocommit mode: false
20:55:17,161  INFO [DriverManagerConnectionProvider] using driver: org.postgresql.Driver at URL: jdbc:postgresql://localhost/imobiliaria
20:55:17,161  INFO [DriverManagerConnectionProvider] connection properties: {user=postgres, password=****}
20:55:17,166  INFO [SettingsFactory     ] RDBMS: PostgreSQL, version: 8.3.10
20:55:17,167  INFO [SettingsFactory     ] JDBC driver: PostgreSQL Native Driver, version: PostgreSQL 8.4 JDBC4 (build 701)
20:55:17,167  INFO [Dialect             ] Using dialect: org.hibernate.dialect.PostgreSQLDialect
20:55:17,168  INFO [JdbcSupportLoader   ] Disabling contextual LOB creation as createClob() method threw error : java.lang.reflect.InvocationTargetException
20:55:17,168  INFO [TransactionFactoryFactory] Using default transaction strategy (direct JDBC transactions)
20:55:17,168  INFO [TransactionManagerLookupFactory] No TransactionManagerLookup configured (in JTA environment, use of read-write or transactional second-level cache is not recommended)
20:55:17,168  INFO [SettingsFactory     ] Automatic flush during beforeCompletion(): disabled
20:55:17,168  INFO [SettingsFactory     ] Automatic session close at end of transaction: disabled
20:55:17,168  INFO [SettingsFactory     ] JDBC batch size: 15
20:55:17,168  INFO [SettingsFactory     ] JDBC batch updates for versioned data: enabled
20:55:17,168  INFO [SettingsFactory     ] Scrollable result sets: enabled
20:55:17,168  INFO [SettingsFactory     ] JDBC3 getGeneratedKeys(): enabled
20:55:17,169  INFO [SettingsFactory     ] Connection release mode: auto
20:55:17,169  INFO [SettingsFactory     ] Maximum outer join fetch depth: 1
20:55:17,169  INFO [SettingsFactory     ] Default batch fetch size: 1
20:55:17,169  INFO [SettingsFactory     ] Generate SQL with comments: disabled
20:55:17,169  INFO [SettingsFactory     ] Order SQL updates by primary key: disabled
20:55:17,169  INFO [SettingsFactory     ] Order SQL inserts for batching: disabled
20:55:17,169  INFO [SettingsFactory     ] Query translator: org.hibernate.hql.ast.ASTQueryTranslatorFactory
20:55:17,169  INFO [ASTQueryTranslatorFactory] Using ASTQueryTranslatorFactory
20:55:17,169  INFO [SettingsFactory     ] Query language substitutions: {yes='Y', no='N'}
20:55:17,169  INFO [SettingsFactory     ] JPA-QL strict compliance: disabled
20:55:17,169  INFO [SettingsFactory     ] Second-level cache: enabled
20:55:17,170  INFO [SettingsFactory     ] Query cache: disabled
20:55:17,170  INFO [SettingsFactory     ] Cache region factory : org.hibernate.cache.impl.bridge.RegionFactoryCacheProviderBridge
20:55:17,170  INFO [RegionFactoryCacheProviderBridge] Cache provider: org.hibernate.cache.HashtableCacheProvider
20:55:17,170  INFO [SettingsFactory     ] Optimize cache for minimal puts: disabled
20:55:17,170  INFO [SettingsFactory     ] Cache region prefix: hibernate.test
20:55:17,170  INFO [SettingsFactory     ] Structured second-level cache entries: disabled
20:55:17,170  INFO [SettingsFactory     ] Echoing all SQL to stdout
20:55:17,170  INFO [SettingsFactory     ] Statistics: disabled
20:55:17,170  INFO [SettingsFactory     ] Deleted entity synthetic identifier rollback: disabled
20:55:17,170  INFO [SettingsFactory     ] Default entity-mode: pojo
20:55:17,171  INFO [SettingsFactory     ] Named query checking : enabled
20:55:17,171  INFO [SettingsFactory     ] Check Nullability in Core (should be disabled when Bean Validation is on): enabled
20:55:17,177  INFO [SessionFactoryImpl  ] building session factory
20:55:17,192  INFO [SessionFactoryObjectFactory] Not binding factory to JNDI, no JNDI name configured
20:55:17,192  INFO [SchemaUpdate        ] Running hbm2ddl schema update
20:55:17,192  INFO [SchemaUpdate        ] fetching database metadata
20:55:17,195  INFO [SchemaUpdate        ] updating schema
20:55:17,337  INFO [TableMetadata       ] table found: public.imovel
20:55:17,338  INFO [TableMetadata       ] columns: [pais, medida, id_imovel, descricao, bairro, cidade, titulo, area, cep, estado, valor, cod_imovel, dt_inclusao, endereco]
20:55:17,338  INFO [TableMetadata       ] foreign keys: []
20:55:17,339  INFO [TableMetadata       ] indexes: [imovel_pkey]
20:55:17,410  INFO [TableMetadata       ] table found: public.usuario
20:55:17,410  INFO [TableMetadata       ] columns: [id_usuario, role, nome, login, senha]
20:55:17,410  INFO [TableMetadata       ] foreign keys: []
20:55:17,410  INFO [TableMetadata       ] indexes: [usuario_pkey]
20:55:17,411  INFO [SchemaUpdate        ] schema update complete

Show de bola! Ficou mais fácil testar a aplicação, antes eu precisava rodar o GeraTabela, agora é só chamar a aplicação que já cria o banco. \o/
Abraço!!!

Criado 16 de abril de 2010
Ultima resposta 17 de abr. de 2010
Respostas 32
Participantes 4