O vraptor 3.4.0 ou 3x em geral não é compativel com hibernate 4 ainda ??
Estou tentando subir uma aplicação sem sucesso . Fica lançando a exception :
java.lang.NoSuchMethodError: org.hibernate.SessionFactory.openSession()Lorg/hibernate/classic/Session;
Esse caminho de classe nem existe mais na nova versão e o modo de construir SessionFactory mudou um pouco com a depreciação do método buildSessionFactory();
Está previsto uma compatibilidade ???
Você deve usar este plugin: https://github.com/garcia-jj/vraptor-plugin-hibernate4
A documentação ainda não está pronta, porém é bem simples. Basta adicionar este jar no teu projeto e pronto: tudo funcionando.
Lembre-se de remover a entrada criada no web.xml para o componente padrão para o hibernate3 do vraptor.
Coloquei o jar no classpath e retirei a definição no web.xml
ficou
<context-param>
<param-name>br.com.caelum.vraptor.packages</param-name>
<param-value>br.com.caelum.vraptor.converter.l10n</param-value>
</context-param>
Esta lancando essa exception
com.google.inject.ConfigurationException: Guice configuration errors:
1) Could not find a suitable constructor in br.com.caelum.vraptor.util.hibernate.HibernateTransactionInterceptor. Classes must have either one (and only one) constructor annotated with @Inject or a zero-argument constructor that is not private.
at br.com.caelum.vraptor.util.hibernate.HibernateTransactionInterceptor.class(HibernateTransactionInterceptor.java:39)
while locating br.com.caelum.vraptor.util.hibernate.HibernateTransactionInterceptor
1 error
com.google.inject.internal.InjectorImpl.getProvider(InjectorImpl.java:1004)
com.google.inject.internal.InjectorImpl.getProvider(InjectorImpl.java:961)
com.google.inject.internal.InjectorImpl.getInstance(InjectorImpl.java:1013)
br.com.caelum.vraptor.ioc.guice.GuiceProvider$GuiceContainer.instanceFor(GuiceProvider.java:61)
br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:47)
br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
br.com.caelum.vraptor.core.EnhancedRequestExecution.execute(EnhancedRequestExecution.java:44)
br.com.caelum.vraptor.VRaptor$1.insideRequest(VRaptor.java:92)
br.com.caelum.vraptor.ioc.guice.GuiceProvider.provideForRequest(GuiceProvider.java:81)
br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:89)
Parece que esta tentando busca algo do pacote br.com.caelum.vraptor.util.hibernate ainda
Ele deu erro no HibernateTransactionInterceptor do hibernate 3… vc tá referenciando ele em algum lugar da aplicação?
o pacote do novo deveria ser br.com.caelum.vraptor.plugin.hibernate4
[quote=Lucas Cavalcanti]Ele deu erro no HibernateTransactionInterceptor do hibernate 3… vc tá referenciando ele em algum lugar da aplicação?
o pacote do novo deveria ser br.com.caelum.vraptor.plugin.hibernate4[/quote]
Realmente lucas tinha uma referencia de código
@Intercepts(after=HibernateTransactionInterceptor.class)
que referencia o pacote nativo , ajustei pra apontar o do plugin e parou de gerar a exception antiga , só que agora passou a dar outro problema que num to conseguindo resolver de jeito nenhum .
java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost:3306/agenda
Ta tudo certo , o jar do mysql ja esta no classpath , a string de conexao ta certa tb , usuario senha tudo certinho .
Quando rodo uma classe utilitaria funciona tudo lindo e nao da pau
public class GeraBancoDado {
public static void main(String[] args) throws NoSuchAlgorithmException{
Configuration conf = new Configuration().configure();
SchemaExport se = new SchemaExport(conf);
se.create(true, true);
GeraPerfilAcessoAdministrador.main(null);
GeraConfiguracao.main(null);
}
}
Mas é tentar rodar em cima do tomcat começa a reclamar que nao acha o driver , ja ate tentei colocar o jar na pasta lib do tomcat mas sem sucesso, tem alguma noção do que possa ser ??
tá no classpath, mas está no WEB-INF/lib também? se não estiver não adianta
Está sim dentro de WEB-INF/lib .
Esse código ao rodar executa certinho :
public static void main(String[] args) throws NoSuchAlgorithmException{
try{
String driver = "com.mysql.jdbc.Driver";
String user = "root";
String pass = "123456";
Class.forName(driver).newInstance();
DriverManager.getConnection("jdbc:mysql://localhost:3306/agenda", user, pass);
System.out.println("Connected to Database");
} catch(Exception ex) {
ex.printStackTrace();
}
}
só que quanto tenta subir a aplicação o hibernate diz não encontrar … será algum bug ??
tenta colocar a declaração do driver no hibernate.cfg.xml, ela tá lá?
Opa ta sim …
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/agenda</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">123456</property>
<property name="hibernate.show_sql">true</property>
<property name="hibernate.format_sql">true</property>
<mapping class="br.com.jslsolucoes.agenda.model.CategoriaFuncionalidade" />
<mapping class="br.com.jslsolucoes.agenda.model.Funcionalidade" />
<mapping class="br.com.jslsolucoes.agenda.model.AcessoSistemaHistorico" />
<mapping class="br.com.jslsolucoes.agenda.model.AcessoSistema" />
<mapping class="br.com.jslsolucoes.agenda.model.Configuracao" />
<mapping class="br.com.jslsolucoes.agenda.model.PerfilAcesso" />
<mapping class="br.com.jslsolucoes.agenda.model.Usuario" />
<mapping class="br.com.jslsolucoes.agenda.model.Contato" />
<mapping class="br.com.jslsolucoes.agenda.model.Telefone" />
<mapping class="br.com.jslsolucoes.agenda.model.TipoContato" />
<mapping class="br.com.jslsolucoes.agenda.model.Usuario" />
</session-factory>
</hibernate-configuration>
Você usa um datasource ou configura o acesso ao banco no hibernate.cfg?
cara, deveria estar funcionando… tenta dar um clean no servidor e no projeto…
[quote=Lucas Cavalcanti]cara, deveria estar funcionando… tenta dar um clean no servidor e no projeto…
[/quote]
Ja dei clean , já limpei a pasta de work , é realmente muito estranho , to enjoado de fazer isso já , com o hibernate 3x nao acontecia isso …
Quando vai startar a aplicação o hibernate já reclama com uma warning
00:12:47,121 WARN JdbcServicesImpl:169 - HHH000342: Could not obtain connection to query metadata : No suitable driver found for jdbc:mysql://localhost:3306/agenda
Vai saber o que ta ardendo …até liguei o log do hibernate mas num diz muita coisa
00:21:23,840 INFO Version:37 - HCANN000001: Hibernate Commons Annotations {4.0.1.Final}
00:21:23,859 INFO Version:41 - HHH000412: Hibernate Core {4.1.2}
00:21:23,863 INFO Environment:239 - HHH000206: hibernate.properties not found
00:21:23,867 INFO Environment:342 - HHH000021: Bytecode provider name : javassist
00:21:23,912 INFO Configuration:1924 - HHH000043: Configuring from resource: /hibernate.cfg.xml
00:21:23,912 INFO Configuration:1943 - HHH000040: Configuration resource: /hibernate.cfg.xml
00:21:23,980 INFO Configuration:2065 - HHH000041: Configured SessionFactory: null
00:21:24,282 INFO DriverManagerConnectionProviderImpl:96 - HHH000402: Using Hibernate built-in connection pool (not for production use!)
00:21:24,285 INFO DriverManagerConnectionProviderImpl:129 - HHH000115: Hibernate connection pool size: 20
00:21:24,285 INFO DriverManagerConnectionProviderImpl:132 - HHH000006: Autocommit mode: false
00:21:24,286 INFO DriverManagerConnectionProviderImpl:146 - HHH000401: using driver [com.mysql.jdbc.Driver] at URL [jdbc:mysql://localhost:3306/agenda]
00:21:24,286 INFO DriverManagerConnectionProviderImpl:151 - HHH000046: Connection properties: {user=root, password=****}
00:21:24,310 WARN JdbcServicesImpl:169 - HHH000342: Could not obtain connection to query metadata : No suitable driver found for jdbc:mysql://localhost:3306/agenda
00:21:24,319 INFO Dialect:122 - HHH000400: Using dialect: org.hibernate.dialect.MySQLDialect
00:21:24,331 INFO LobCreatorBuilder:85 - HHH000422: Disabling contextual LOB creation as connection was null
00:21:24,346 INFO TransactionFactoryInitiator:68 - HHH000399: Using default transaction strategy (direct JDBC transactions)
00:21:24,368 INFO ASTQueryTranslatorFactory:48 - HHH000397: Using ASTQueryTranslatorFactory
eh um warn, a aplicação não funciona depois disso?
Não , dai pra frente ele ja da cannot open connection e reclama de no suitable driver found…saco viu…vou fazer downgrade pra 4.0.0 pra ver se continua e vir testando variavel por variavel…
Eu descartaria problemas no plugin, porque os testes usando o HSQLDB funcionam bem:
730 [main] DEBUG org.hibernate.internal.SessionFactoryRegistry - Initializing SessionFactoryRegistry : org.hibernate.internal.SessionFactoryRegistry@30ea6d35
732 [main] DEBUG org.hibernate.internal.SessionFactoryRegistry - Registering SessionFactory: 79ada183-5347-4b1a-a2ed-e35fb143c5cc (<unnamed>)
733 [main] DEBUG org.hibernate.internal.SessionFactoryRegistry - Not binding SessionFactory to JNDI, no JNDI name configured
733 [main] DEBUG org.hibernate.internal.SessionFactoryImpl - Instantiated session factory
733 [main] DEBUG org.hibernate.internal.SessionFactoryImpl - Checking 0 named HQL queries
733 [main] DEBUG org.hibernate.internal.SessionFactoryImpl - Checking 0 named SQL queries
737 [main] DEBUG org.hibernate.stat.internal.StatisticsInitiator - Statistics initialized [enabled=false]
795 [main] DEBUG org.hibernate.internal.SessionImpl - Opened session at timestamp: 13342030722
799 [main] DEBUG org.hibernate.internal.SessionFactoryImpl - HHH000031: Closing
799 [main] INFO org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl - HHH000030: Cleaning up connection pool [jdbc:hsqldb:mem:aname]
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.887 sec
Como está configurado teu hibernate.cfg?
Onde está o driver? É importante você verificar quais os locais que estão o driver e a versão, pois pode haver uma versão diferente em um nível mais alto do classloader que pode atrapalhar algo.
[quote=garcia-jj]Eu descartaria problemas no plugin, porque os testes usando o HSQLDB funcionam bem:
730 [main] DEBUG org.hibernate.internal.SessionFactoryRegistry - Initializing SessionFactoryRegistry : org.hibernate.internal.SessionFactoryRegistry@30ea6d35
732 [main] DEBUG org.hibernate.internal.SessionFactoryRegistry - Registering SessionFactory: 79ada183-5347-4b1a-a2ed-e35fb143c5cc (<unnamed>)
733 [main] DEBUG org.hibernate.internal.SessionFactoryRegistry - Not binding SessionFactory to JNDI, no JNDI name configured
733 [main] DEBUG org.hibernate.internal.SessionFactoryImpl - Instantiated session factory
733 [main] DEBUG org.hibernate.internal.SessionFactoryImpl - Checking 0 named HQL queries
733 [main] DEBUG org.hibernate.internal.SessionFactoryImpl - Checking 0 named SQL queries
737 [main] DEBUG org.hibernate.stat.internal.StatisticsInitiator - Statistics initialized [enabled=false]
795 [main] DEBUG org.hibernate.internal.SessionImpl - Opened session at timestamp: 13342030722
799 [main] DEBUG org.hibernate.internal.SessionFactoryImpl - HHH000031: Closing
799 [main] INFO org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl - HHH000030: Cleaning up connection pool [jdbc:hsqldb:mem:aname]
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.887 sec
Como está configurado teu hibernate.cfg?
Onde está o driver? É importante você verificar quais os locais que estão o driver e a versão, pois pode haver uma versão diferente em um nível mais alto do classloader que pode atrapalhar algo.
[/quote]
É realmente não creio ser de plugin também …
meu hibernate.cfg.xml está assim
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/agenda</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">123456</property>
<property name="hibernate.show_sql">true</property>
<property name="hibernate.format_sql">true</property>
<mapping class="br.com.jslsolucoes.agenda.model.CategoriaFuncionalidade" />
<mapping class="br.com.jslsolucoes.agenda.model.Funcionalidade" />
<mapping class="br.com.jslsolucoes.agenda.model.AcessoSistemaHistorico" />
<mapping class="br.com.jslsolucoes.agenda.model.AcessoSistema" />
<mapping class="br.com.jslsolucoes.agenda.model.Configuracao" />
<mapping class="br.com.jslsolucoes.agenda.model.PerfilAcesso" />
<mapping class="br.com.jslsolucoes.agenda.model.Usuario" />
<mapping class="br.com.jslsolucoes.agenda.model.Contato" />
<mapping class="br.com.jslsolucoes.agenda.model.Telefone" />
<mapping class="br.com.jslsolucoes.agenda.model.TipoContato" />
<mapping class="br.com.jslsolucoes.agenda.model.Usuario" />
</session-factory>
</hibernate-configuration>
o driver do mysql (mysql-connector-java-5.1.13-bin.jar) está dentro da pasta WEB-INF/lib e só lá em nenhum outro lugar … métodos main funcionam sem problema mesmo utilizando o hibernate … dá pau na hora de subir num appserver to usando tomcat 7.0.27… primeiro contato com hibernate 4 ta ficando foda…rsrs
Fiz os testes conforme o teu hibernate.cfg, e rodou bem aqui:
390 [main] INFO org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl - HHH000402: Using Hibernate built-in connection pool (not for production use!)
397 [main] INFO org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl - HHH000115: Hibernate connection pool size: 20
397 [main] INFO org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl - HHH000006: Autocommit mode: false
397 [main] INFO org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl - HHH000401: using driver [com.mysql.jdbc.Driver] at URL [jdbc:mysql://localhost:3306/test]
397 [main] INFO org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl - HHH000046: Connection properties: {user=root, password=root}
426 [main] DEBUG org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl - Opening new JDBC connection
721 [main] DEBUG org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl - Created connection to: jdbc:mysql://localhost:3306/test, Isolation Level: 4
721 [main] DEBUG org.hibernate.engine.jdbc.internal.JdbcServicesImpl - Database ->
name : MySQL
version : 5.5.19
major : 5
minor : 5
722 [main] DEBUG org.hibernate.engine.jdbc.internal.JdbcServicesImpl - Driver ->
name : MySQL-AB JDBC Driver
version : mysql-connector-java-5.1.19 ( Revision: tonci.grgin@oracle.com-20111003110438-qfydx066wsbydkbw )
major : 5
minor : 1
722 [main] DEBUG org.hibernate.engine.jdbc.internal.JdbcServicesImpl - JDBC version : 4.0
742 [main] INFO org.hibernate.dialect.Dialect - HHH000400: Using dialect: org.hibernate.dialect.MySQLDialect
852 [main] DEBUG org.hibernate.internal.SessionFactoryRegistry - Initializing SessionFactoryRegistry : org.hibernate.internal.SessionFactoryRegistry@52da37d8
856 [main] DEBUG org.hibernate.internal.SessionFactoryRegistry - Registering SessionFactory: 8c60f94d-01b2-4b49-8fd8-2453afd0cfd7 (<unnamed>)
856 [main] DEBUG org.hibernate.internal.SessionFactoryRegistry - Not binding SessionFactory to JNDI, no JNDI name configured
856 [main] DEBUG org.hibernate.internal.SessionFactoryImpl - Instantiated session factory
856 [main] DEBUG org.hibernate.internal.SessionFactoryImpl - Checking 0 named HQL queries
856 [main] DEBUG org.hibernate.internal.SessionFactoryImpl - Checking 0 named SQL queries
862 [main] DEBUG org.hibernate.stat.internal.StatisticsInitiator - Statistics initialized [enabled=false]
911 [main] DEBUG org.hibernate.internal.SessionImpl - Opened session at timestamp: 13342052842
915 [main] DEBUG org.hibernate.internal.SessionFactoryImpl - HHH000031: Closing
916 [main] INFO org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl - HHH000030: Cleaning up connection pool [jdbc:mysql://localhost:3306/test]
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.023 sec
Usei o seguinte hibernate.cfg:
<session-factory>
<property name="show_sql">true</property>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">root</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/test</property>
</session-factory>
A única diferença entre o nosso é que estou rodando por fora, e não tenho o Dialect. Remova o Dialect do teu para ver como fica, embora eu ache que não é isso.
Outra sugestão é criar um servlet para conectar no banco de dados, para fazer um teste e ver se é algum problema com o tomcat:
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "root");
System.out.println(conn);
[quote=garcia-jj]Fiz os testes conforme o teu hibernate.cfg, e rodou bem aqui:
390 [main] INFO org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl - HHH000402: Using Hibernate built-in connection pool (not for production use!)
397 [main] INFO org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl - HHH000115: Hibernate connection pool size: 20
397 [main] INFO org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl - HHH000006: Autocommit mode: false
397 [main] INFO org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl - HHH000401: using driver [com.mysql.jdbc.Driver] at URL [jdbc:mysql://localhost:3306/test]
397 [main] INFO org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl - HHH000046: Connection properties: {user=root, password=root}
426 [main] DEBUG org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl - Opening new JDBC connection
721 [main] DEBUG org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl - Created connection to: jdbc:mysql://localhost:3306/test, Isolation Level: 4
721 [main] DEBUG org.hibernate.engine.jdbc.internal.JdbcServicesImpl - Database ->
name : MySQL
version : 5.5.19
major : 5
minor : 5
722 [main] DEBUG org.hibernate.engine.jdbc.internal.JdbcServicesImpl - Driver ->
name : MySQL-AB JDBC Driver
version : mysql-connector-java-5.1.19 ( Revision: tonci.grgin@oracle.com-20111003110438-qfydx066wsbydkbw )
major : 5
minor : 1
722 [main] DEBUG org.hibernate.engine.jdbc.internal.JdbcServicesImpl - JDBC version : 4.0
742 [main] INFO org.hibernate.dialect.Dialect - HHH000400: Using dialect: org.hibernate.dialect.MySQLDialect
852 [main] DEBUG org.hibernate.internal.SessionFactoryRegistry - Initializing SessionFactoryRegistry : org.hibernate.internal.SessionFactoryRegistry@52da37d8
856 [main] DEBUG org.hibernate.internal.SessionFactoryRegistry - Registering SessionFactory: 8c60f94d-01b2-4b49-8fd8-2453afd0cfd7 (<unnamed>)
856 [main] DEBUG org.hibernate.internal.SessionFactoryRegistry - Not binding SessionFactory to JNDI, no JNDI name configured
856 [main] DEBUG org.hibernate.internal.SessionFactoryImpl - Instantiated session factory
856 [main] DEBUG org.hibernate.internal.SessionFactoryImpl - Checking 0 named HQL queries
856 [main] DEBUG org.hibernate.internal.SessionFactoryImpl - Checking 0 named SQL queries
862 [main] DEBUG org.hibernate.stat.internal.StatisticsInitiator - Statistics initialized [enabled=false]
911 [main] DEBUG org.hibernate.internal.SessionImpl - Opened session at timestamp: 13342052842
915 [main] DEBUG org.hibernate.internal.SessionFactoryImpl - HHH000031: Closing
916 [main] INFO org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl - HHH000030: Cleaning up connection pool [jdbc:mysql://localhost:3306/test]
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.023 sec
Usei o seguinte hibernate.cfg:
<session-factory>
<property name="show_sql">true</property>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">root</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/test</property>
</session-factory>
A única diferença entre o nosso é que estou rodando por fora, e não tenho o Dialect. Remova o Dialect do teu para ver como fica, embora eu ache que não é isso.
Outra sugestão é criar um servlet para conectar no banco de dados, para fazer um teste e ver se é algum problema com o tomcat:
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "root");
System.out.println(conn);
[/quote]
Hum bom vamo lá … Estava utilzando a ultima versao do hibernate 4.1.2 nos meus testes fiz um downgrade para a 4.0.0 e rolou tudo certo dessa vez sem problemas , tenta fazer um teste do plugin com a versão 4.1.2 que é a ultima disponível para ver se continua rolando …
vou ter que testar 1 a uma pra ver qual a anterior que nao da problema … vai dar um trampinho mas terminando posto os resultados aqui e acho exatamente qual a que funciona antes da 4.1.2
É demorou mais achei o problema …
É exatamente um jar específico distribuido junto com a versão 4.1.2 “hibernate-c3p0-4.1.2” que está dando problema , se eu trocar esse jar por uma versão antes hibernate-c3p0-4.1.1.Final funciona certinho, mas como nao tenho certeza da compatibilidade por hora vou deixar atualizado para a versao 4.1.1 completa mesmo ja que é a mais recente que funciona … no mais alguma previsao pra deixar o vraptor ja compativel nativo com hibernate 4 em vez do hibernate 3 ???