estou com um problema ,ao fazer o submit de um formulario , deveria ser adicionado um produto ao Banco de Dados , mas ao invez disto esta retornando erro 500.
Formulario:
<%@pagelanguage="java"contentType="text/html; charset=ISO-8859-1"pageEncoding="ISO-8859-1"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><metahttp-equiv="Content-Type"content="text/html; charset=utf-8"/><title>Insert title here</title></head><body><formaction="adiciona"><fieldset><legend>Adicionar Produto</legend><labelfor="nome">Nome:</label><inputid="nome"type="text"name="produto.nome"/><labelfor="descricao">Descrição:</label><textareaid="descricao"name="produto.descricao"></textarea><labelfor="preco">Preço:</label><inputid="preco"type="text"name="produto.preco"/><buttontype="submit">Enviar</button></fieldset></form></body></html>
O mais estranho que ao testar local, obtive o mesmo problema o0
publicclassAdicaoDeProduto{publicstaticvoidmain(String[]args){Sessionsession=CriadorDeSession.getSession();Produtoprateleira=criaProduto();newProdutoDAO().salva(prateleira);}privatestaticProdutocriaProduto(){Produtoprateleira=newProduto();prateleira.setNome("Furadeira BD");prateleira.setDescricao("Furadeira Black & Decker 220w");prateleira.setPreco(139.99);returnprateleira;}
Segue a Stacktrace…nao existe Method?
Caused by: java.lang.NoSuchMethodError: org.hibernate.event.PreInsertEvent.getSource()Lorg/hibernate/engine/SessionImplementor;
at org.hibernate.validator.event.ValidateEventListener.onPreInsert(ValidateEventListener.java:172)
at org.hibernate.action.EntityIdentityInsertAction.preInsert(EntityIdentityInsertAction.java:160)
at org.hibernate.action.EntityIdentityInsertAction.execute(EntityIdentityInsertAction.java:65)
at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:273)
at org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:320)
at org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:203)
at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:129)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:210)
at org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:56)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:195)
at org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:50)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:93)
at org.hibernate.impl.SessionImpl.fireSave(SessionImpl.java:713)
at org.hibernate.impl.SessionImpl.save(SessionImpl.java:701)
at org.hibernate.impl.SessionImpl.save(SessionImpl.java:697)
at br.com.caelum.goodbuy.infra.ProdutoDAO.salva(ProdutoDAO.java:24)
at br.com.caelum.goodbuy.controller.ProdutosController.adiciona(ProdutosController.java:27)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at br.com.caelum.vraptor.interceptor.ExecuteMethodInterceptor.intercept(ExecuteMethodInterceptor.java:61)
... 41 more
Rafael_Guerreiro
A action do form está executando o método adiciona?
C
CaioIncau
Sim , e como tentei local e me retornou o mesmo erro, creio que o problema seja no DAO, mas e estranho pq estava funcionando…
isso geralmente é problema de conflito de versão de jars… vc deve estar com 2 versões do hibernate, ou com a versão errada dele.
C
CaioIncau
Opa lucas , irei verificar assim que chegar da facul , mas creio que seja isto.
C
CaioIncau
Acabei de ver lucas e estou somente com o Hibernate 4.0.1 …
Estes sao os Jars que tenho na minha Lib…
C
CaioIncau
O Log4J tambem esta reclamando de algo.
log4j:WARN No appenders could be found for logger (org.hibernate.type.BasicTypeRegistry).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
Exception in thread "main" java.lang.NoSuchMethodError: org.hibernate.event.PreInsertEvent.getSource()Lorg/hibernate/engine/SessionImplementor;
at org.hibernate.validator.event.ValidateEventListener.onPreInsert(ValidateEventListener.java:172)
at org.hibernate.action.EntityIdentityInsertAction.preInsert(EntityIdentityInsertAction.java:160)
at org.hibernate.action.EntityIdentityInsertAction.execute(EntityIdentityInsertAction.java:65)
at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:273)
at org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:320)
at org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:203)
at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:129)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:210)
at org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:56)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:195)
at org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:50)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:93)
at org.hibernate.impl.SessionImpl.fireSave(SessionImpl.java:713)
at org.hibernate.impl.SessionImpl.save(SessionImpl.java:701)
at org.hibernate.impl.SessionImpl.save(SessionImpl.java:697)
at br.com.caelum.goodbuy.infra.ProdutoDAO.salva(ProdutoDAO.java:24)
at br.com.caelum.goodbuy.testes.AdicaoDeProduto.main(AdicaoDeProduto.java:19)
Lucas_Cavalcanti
talvez o vraptor não seja compatível com o hibernate 4.x
tenta rodar com o 3.6.x, ou se você estiver dentro do jboss, simplesmente remova todos os jars do hibernate, ele já vai ter impl do hibernate lá dentro
C
CaioIncau
Opa , assim que voltar da faculdade irei repor os jars , acabei deletando todos os jars e irei repor com a versão 3.6.x
C
CaioIncau
Nem era isto…cansei , todo dia um problema com jar com isso com aquilo…
Vou ver se acho um material bom de JSF e Spring.
Lucas_Cavalcanti
Boa sorte então
só que esse problema não tem nada a ver com o VRaptor… se vc tirar o jar do VRaptor e colocar as coisas do spring e JSF vai acontecer a mesma coisa.
Bem vindo ao java, clash de versões diferentes de jar vão acontecer toda hora, vc precisa aprender a conviver com isso…
de novo, se vc estiver usando jboss, é só tirar o jar do hibernate que funciona, pq ele já está lá.
C
CaioIncau
To usando Tomcat…cara eu ja mudei dos jars para a 3,6 e nada …nao to afim de refazer o “Projeto”
Lucas_Cavalcanti
pelas imagens que você mandou, só alguns dos jars estão no classpath…
vc colocou os jars na pasta WEB-INF/lib? está com jars referenciados no build path direto?
tire os jars referenciados, e jogue todos no WEB-INF/lib