VRaptor + Hibernate

java.lang.NoSuchMethodError: org.hibernate.SessionFactory.openSession()Lorg/hibernate/classic/Session;

vc tá com hibernate 4?

vc tá com mais de uma versão do hibernate no classpath?

Meus arquivos:

web.xml

[code]<?xml version="1.0" encoding="UTF-8"?>

vraptor-blank-project

<!--
	VRaptor will scan classpath for all @Component and 
	@Resource inside WEB-INF/classes

	If you want to load them also from WEB-INF/lib/ jars, 
	you need to specify from which packages they will
	be loaded, comma separated:
-->

<!-- 
<context-param>
    	<param-name>br.com.caelum.vraptor.packages</param-name>
        <param-value>br.com.caelum.vraptor.blank</param-value>
</context-param>
 -->

<!--  
   if you are using a servlet 3.0 container 
	as glassfish 3 or jetty 8, you dont need this
	filter configuration 
-->
	
<!-- <context-param>
    	<param-name>br.com.caelum.vraptor.provider</param-name>
        <param-value>br.com.caelum.vraptor.ioc.guice.GuiceProvider</param-value>
</context-param>-->

<!-- <context-param>   
	<param-name>br.com.caelum.vraptor.packages</param-name>   
	<param-value>br.com.caelum.vraptor.util.hibernate</param-value>   
</context-param> -->


<context-param>   
	<param-name>br.com.caelum.vraptor.packages</param-name>   
	<param-value>br.com.caelum.vraptor.util.hibernate</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>
[/code]

Arquivos de conexão:

[code]package br.com.nightclub.infra;

import org.hibernate.Session;
import org.hibernate.SessionFactory;

import br.com.caelum.vraptor.ioc.Component;
import br.com.caelum.vraptor.ioc.ComponentFactory;

@Component
public class CriadorDeSession implements ComponentFactory{

private final SessionFactory factory;

public CriadorDeSession(SessionFactory factory) {
	this.factory = factory;
}

public Session getInstance() {
	return factory.openSession();
}

}[/code]

[code]package br.com.nightclub.infra;

import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;

import br.com.caelum.vraptor.ioc.ComponentFactory;

public class CriadorDeSessionFactory implements ComponentFactory {

	public SessionFactory getInstance() {
		AnnotationConfiguration configuration = new AnnotationConfiguration();
		configuration.configure();
		
		SessionFactory factory = configuration.buildSessionFactory();
		return factory;
	}

}
[/code]

arquivo do hibernate

[code]

root senha jdbc:mysql://localhost/teste com.mysql.jdbc.Driver org.hibernate.dialect.MySQL5InnoDBDialect update true true

[/code]

Meu dao

[code]package br.com.nightclub.dao;

import java.util.List;

import org.hibernate.Session;
import org.hibernate.Transaction;

import br.com.caelum.vraptor.ioc.Component;
import br.com.nightclub.dto.Produto;

@Component
public class ProdutoDao {

private final Session session;

public ProdutoDao(Session session) {
	this.session = session;
}

public void salvaProduto(Produto produto) {
	Transaction tx = session.beginTransaction();
	session.save(produto);
	tx.commit();
}

public void atualizarProduto(Produto produto) {
	Transaction tx = session.beginTransaction();	
	session.update(produto);
	tx.commit();
}

public void removerProduto(Produto produto) {
	Transaction tx = session.beginTransaction();
	session.delete(produto);
	tx.commit();
}

public Produto carregarProduto() {
	Produto produto = (Produto) session.load(Produto.class, 1L);
	return produto;
}

public List<Produto> listaTudo() {
	return this.session.createCriteria(Produto.class).list();
}

}
[/code]

velho eu já tentei fazer varias coisas aqui e nada, fiz um projeto novo sem o maven coloquei na mao os jars e nada, ta tenso

vlw !!!

Vi a sua pergunta agora, acho que não cara, estou com essas jars, olha a imagem.




vc tá com o hibernate 4, e o plugin normal do hibernate só funciona com o 3…

remova o pacote do hibernate do web.xml e anote sua CriadorDeSessionFactory com @Component e veja se funciona…

vc tá fazendo o deploy em algum servidor de aplicação, tipo o JBoss ou o Glassfish? se sim, vc deveria tirar os jars do hibernate.

Deu certo amigo, muito obrigado pela ajuda !!!

Estou usando o tomcat só.

vlw !!