Pessoal,
Tirem uma dúvida simples minha.
O Vraptor 3 já tem suporte para JPA2?
Acredito que estou tendo alguns erros por causa disso e estou impacado no meu desenvolvimento.
Pessoal,
Tirem uma dúvida simples minha.
O Vraptor 3 já tem suporte para JPA2?
Acredito que estou tendo alguns erros por causa disso e estou impacado no meu desenvolvimento.
sim, o VRaptor funciona normalmente com JPA2. Quais erros estão acontecendo?
Lucas,
Não estou com o erro completo agora aqui em mãos, mas a principal frase que ele dá é Unable to configure EntityManagerFactory.
Não sei se isso é o suficiente para determinar uma solução.
Além disso antes eu recebo um erro de PersistenceException na minha Entidade. Pelo que eu vi a Entitdade está ok.
Vou postar os meus códigos assim que possível.
“Unable to configure EntityManagerFactory” geralmente é algum problema na configuração, o erro de verdade eestá mais abaixo na stacktrace, nos caused by.
Isto é interessante.
Lembro de algo ser falado no Hibernate Validator.
Como não tenho tudo em mãos agora fica difícil descrever o erro.
No final do dia coloco todos os erros aqui para detalhar melhor.
Nada muda no VRaptor para o JPA 1 ou JPA 2, digo, não há diferença entre ambos.
Você precisa cuidar para remover todos os jars do JPA1 e deixar apenas o JPA2, além disso use uma implementação que suporte JPA2 como o Hibernate 3.5+.
Garcia,
Ja utilizo o hibernate 3.6.1(ultimo release do hibernate). Acredito que eu esteja errando na configuração. Vou colocar os codigos e configuracoes para que possam me ajudar.
Pessoal,
Vou tentar descrever aqui a estrutura do meu projeto. Eu baixei ha um tempo o Vraptor Blank Project 3.2.1 que estava no site. Estou utilizando o JBoss AS 6 e o Hibernate 3.6.1.
Estou utilizando um Datasource com as configurações do banco.
Abaixo segue o código persistence.xml
[code]<?xml version="1.0" encoding="UTF-8"?>
org.hibernate.ejb.HibernatePersistence
java:/PostgresDS
br.com.caelum.vraptor.entity.Tecnologia
[/code]
Este é o código do datasource que eu criei.
[code]<?xml version="1.0" encoding="UTF-8"?>
PostgresDS jdbc:postgresql://localhost:5432/scfp_db org.postgresql.Driver postgres admin <!-- sql to call on an existing pooled connection when it is obtained from pool. Can be anything, select 1 is valid for PostgreSQL
<check-valid-connection-sql>select 1</check-valid-connection-sql>
-->
<!-- corresponding type-mapping in the standardjbosscmp-jdbc.xml (optional) -->
<metadata>
<type-mapping>PostgreSQL 8.4</type-mapping>
</metadata>
[/code]
Agora segue o erro que eu estou recebendo no momento que tento salvar alguma informação no banco.
20:53:52,231 ERROR [STDERR] 179114 [http-localhost%2F127.0.0.1-8080-3] INFO cfg.AnnotationBinder - Binding entity from annotated class: br.com.caelum.vraptor.entity.Tecnologia
20:53:52,236 ERROR [STDERR] 179119 [http-localhost%2F127.0.0.1-8080-3] INFO annotations.EntityBinder - Bind entity br.com.caelum.vraptor.entity.Tecnologia on table Tecnologia
20:53:52,314 INFO [STDOUT] 20:53:52,314 DEBUG [DefaultExceptionMapper] find for exception class javax.persistence.PersistenceException
20:53:52,314 ERROR [STDERR] 179197 [http-localhost%2F127.0.0.1-8080-3] DEBUG core.DefaultExceptionMapper - find for exception class javax.persistence.PersistenceException
20:53:52,314 INFO [STDOUT] 20:53:52,314 DEBUG [DefaultExceptionMapper] find for exception class org.hibernate.AnnotationException
20:53:52,314 ERROR [STDERR] 179197 [http-localhost%2F127.0.0.1-8080-3] DEBUG core.DefaultExceptionMapper - find for exception class org.hibernate.AnnotationException
20:53:52,315 INFO [STDOUT] 20:53:52,315 DEBUG [DefaultExceptionMapper] find for exception class java.lang.NoSuchMethodException
20:53:52,315 ERROR [STDERR] 179198 [http-localhost%2F127.0.0.1-8080-3] DEBUG core.DefaultExceptionMapper - find for exception class java.lang.NoSuchMethodException
20:53:52,315 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[localhost].[/SCFP].[default]] Servlet.service() for servlet default threw exception: br.com.caelum.vraptor.InterceptionException: exception raised, check root cause for details: javax.persistence.PersistenceException: [PersistenceUnit: scfpDB] Unable to configure EntityManagerFactory
at br.com.caelum.vraptor.interceptor.ExecuteMethodInterceptor.intercept(ExecuteMethodInterceptor.java:86) [:]
at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54) [:]
at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53) [:]
at br.com.caelum.vraptor.interceptor.ExceptionHandlerInterceptor.intercept(ExceptionHandlerInterceptor.java:69) [:]
at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54) [:]
at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53) [:]
at br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:61) [:]
at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53) [:]
at br.com.caelum.vraptor.interceptor.ParametersInstantiatorInterceptor.intercept(ParametersInstantiatorInterceptor.java:90) [:]
at br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:59) [:]
at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53) [:]
at br.com.caelum.vraptor.interceptor.InstantiateInterceptor.intercept(InstantiateInterceptor.java:42) [:]
at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54) [:]
at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53) [:]
at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56) [:]
at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53) [:]
at br.com.caelum.vraptor.interceptor.InterceptorListPriorToExecutionExtractor.intercept(InterceptorListPriorToExecutionExtractor.java:44) [:]
at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54) [:]
at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53) [:]
at br.com.caelum.vraptor.interceptor.FlashInterceptor.intercept(FlashInterceptor.java:81) [:]
at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54) [:]
at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53) [:]
at br.com.caelum.vraptor.interceptor.ResourceLookupInterceptor.intercept(ResourceLookupInterceptor.java:67) [:]
at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54) [:]
at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53) [:]
at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56) [:]
at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53) [:]
at br.com.caelum.vraptor.core.DefaultRequestExecution.execute(DefaultRequestExecution.java:70) [:]
at br.com.caelum.vraptor.VRaptor$1.insideRequest(VRaptor.java:92) [:]
at br.com.caelum.vraptor.ioc.spring.SpringProvider.provideForRequest(SpringProvider.java:56) [:]
at br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:89) [:]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:274) [:6.0.0.Final]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:242) [:6.0.0.Final]
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275) [:6.0.0.Final]
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) [:6.0.0.Final]
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:181) [:6.0.0.Final]
at org.jboss.modcluster.catalina.CatalinaContext$RequestListenerValve.event(CatalinaContext.java:285) [:1.1.0.Final]
at org.jboss.modcluster.catalina.CatalinaContext$RequestListenerValve.invoke(CatalinaContext.java:261) [:1.1.0.Final]
at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:88) [:6.0.0.Final]
at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:100) [:6.0.0.Final]
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) [:6.0.0.Final]
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) [:6.0.0.Final]
at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158) [:6.0.0.Final]
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) [:6.0.0.Final]
at org.jboss.web.tomcat.service.request.ActiveRequestResponseCacheValve.invoke(ActiveRequestResponseCacheValve.java:53) [:6.0.0.Final]
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:362) [:6.0.0.Final]
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877) [:6.0.0.Final]
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:654) [:6.0.0.Final]
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:951) [:6.0.0.Final]
at java.lang.Thread.run(Unknown Source) [:1.6.0_24]
Caused by: javax.persistence.PersistenceException: [PersistenceUnit: scfpDB] Unable to configure EntityManagerFactory
at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:374) [:3.6.1.Final]
at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:56) [:3.6.1.Final]
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:48) [:1.0.0.Final]
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:32) [:1.0.0.Final]
at br.com.caelum.vraptor.dao.GenericDAO.createEntityManager(GenericDAO.java:15) [:]
at br.com.caelum.vraptor.dao.TecnologiaDAO.cadastrar(TecnologiaDAO.java:21) [:]
at br.com.caelum.vraptor.controller.TecnologiaController.cadastrar(TecnologiaController.java:38) [:]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [:1.6.0_24]
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) [:1.6.0_24]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) [:1.6.0_24]
at java.lang.reflect.Method.invoke(Unknown Source) [:1.6.0_24]
at br.com.caelum.vraptor.interceptor.ExecuteMethodInterceptor.intercept(ExecuteMethodInterceptor.java:57) [:]
... 49 more
Caused by: org.hibernate.AnnotationException: java.lang.NoSuchMethodException: org.hibernate.validator.ClassValidator.<init>(java.lang.Class, java.util.ResourceBundle, org.hibernate.validator.MessageInterpolator, java.util.Map, org.hibernate.annotations.common.reflection.ReflectionManager)
at org.hibernate.cfg.Configuration.applyHibernateValidatorLegacyConstraintsOnDDL(Configuration.java:1651) [:3.6.1.Final]
at org.hibernate.cfg.Configuration.applyConstraintsToDDL(Configuration.java:1623) [:3.6.1.Final]
at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1415) [:3.6.1.Final]
at org.hibernate.cfg.Configuration.buildMappings(Configuration.java:1345) [:3.6.1.Final]
at org.hibernate.ejb.Ejb3Configuration.buildMappings(Ejb3Configuration.java:1477) [:3.6.1.Final]
at org.hibernate.ejb.EventListenerConfigurator.configure(EventListenerConfigurator.java:193) [:3.6.1.Final]
at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:1096) [:3.6.1.Final]
at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:278) [:3.6.1.Final]
at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:362) [:3.6.1.Final]
... 60 more
Caused by: java.lang.NoSuchMethodException: org.hibernate.validator.ClassValidator.<init>(java.lang.Class, java.util.ResourceBundle, org.hibernate.validator.MessageInterpolator, java.util.Map, org.hibernate.annotations.common.reflection.ReflectionManager)
at java.lang.Class.getConstructor0(Unknown Source) [:1.6.0_24]
at java.lang.Class.getDeclaredConstructor(Unknown Source) [:1.6.0_24]
at org.hibernate.cfg.Configuration.applyHibernateValidatorLegacyConstraintsOnDDL(Configuration.java:1639) [:3.6.1.Final]
... 68 more
Se alguém puder me dar uma luz sobre aonde eu estou errando vai ajudar bastante
O JBoss não vai deixar você usar outro jar do Hibernate na sua propria aplicação. Você deve apagar os jars do hibernate, javassist, slf4j-*, dom4j, antlr, commons-collections.
Isso porque o JBoss já vem com o Hibernate.
Ok. Essa eu já imaginava, mas toda vez que eu retiro o jar da minha aplicação no Eclipse, ele reclama.
Como resolvo isso? Retirar os jars do Eclipse sem quebrar.
p.s.: Sei que a pergunta é tosca, mas não consegui resolver.
Você pode adicionar uma user-library ou então adicionar os jars do hibernate que estão no jboss manualmente como “external library”.