Primeiro programa utilizando Hibernate e annotations

Oi pessoal, já to tentando fazer um programinha desse faz um tempo, já vi vários tutoriais na net mas ta mto dificil de eu conseguir, se alguem puder me ajudar agradeço!

Tenho as seguintes classes:

[code]package cadastro.controllers;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.SQLException;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import cadastro.DAO.MotoDAO;
import cadastro.model.Moto;

/**

  • Servlet implementation class CtrlCadastro
    */
    @WebServlet("/CtrlCadastro")
    public class CtrlCadastro extends HttpServlet {
    private static final long serialVersionUID = 1L;

    /**

    • @see HttpServlet#HttpServlet()
      */
      public CtrlCadastro() {
      super();
      // TODO Auto-generated constructor stub
      }

    /**

    • @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
      */
      protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
      //recuperando variáveis da tela
      String modelo = request.getParameter(“modelo”);
      String marca = request.getParameter(“marca”);
      String cor = request.getParameter(“cor”);
      String partida = request.getParameter(“partida”);

      //popular objeto Moto
      Moto moto = new Moto();
      moto.setModelo(modelo);
      moto.setMarca(marca);
      moto.setCor(cor);
      moto.setPartida(partida);
      //enviar objeto da classe Moto para o DAO
      MotoDAO dao = new MotoDAO();
      dao.salvar(moto);[/code]

[code]package cadastro.DAO;

import java.sql.*;

import org.hibernate.*;
import org.hibernate.cfg.AnnotationConfiguration;

import cadastro.model.Moto;
import cadastro.util.HibernateUtility;

public class MotoDAO {
private SessionFactory factory;

public boolean salvar(Moto moto){
	
	Session session = HibernateUtility.getSessionFactory().openSession();
	Transaction transaction = session.beginTransaction();
	session.save(moto);
	session.flush();
	session.close();
    return false;
    }[/code]

[code]package cadastro.model;

import javax.persistence.*;

@Entity
@Table(name=“Motos”)
public class Moto {
@Id
@GeneratedValue
@Column(name=“moto_id”)
private long id;

private String marca, modelo, cor;
private String partida;

public String getCor() {
	return cor;
}
public void setCor(String cor) {
	this.cor = cor;
}
public String getMarca() {
	return marca;
}
public void setMarca(String marca) {
	this.marca = marca;
}
public String getModelo() {
	return modelo;
}
public void setModelo(String modelo) {
	this.modelo = modelo;
}
public String getPartida() {
	return partida;
}
public void setPartida(String partida) {
	this.partida = partida;
}[/code]

[code]package cadastro.util;

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

import cadastro.model.Moto;

public class HibernateUtility {
private static final SessionFactory sessionFactory;

static{
	try{
		sessionFactory = new AnnotationConfiguration()
						.configure()
						.addAnnotatedClass(Moto.class)
						.buildSessionFactory();
	}catch (Throwable ex){
		System.err.println("Initial SessionFactory creation failed." + ex);
		throw new ExceptionInInitializerError(ex);
	}
}

public static SessionFactory getSessionFactory(){
	return sessionFactory;
}

}[/code]

e aparece o seguinte erro qndo clico em Salvar:

Initial SessionFactory creation failed.java.lang.NoClassDefFoundError: org/hibernate/cfg/AnnotationConfiguration Mar 29, 2013 7:02:45 PM org.apache.catalina.core.StandardWrapperValve invoke SEVERE: Servlet.service() for servlet [cadastro.controllers.CtrlCadastro] in context with path [/cadastro] threw exception [Servlet execution threw an exception] with root cause java.lang.ClassNotFoundException: org.hibernate.cfg.AnnotationConfiguration at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559) at cadastro.util.HibernateUtility.<clinit>(HibernateUtility.java:15) at cadastro.DAO.MotoDAO.salvar(MotoDAO.java:16) at cadastro.controllers.CtrlCadastro.doPost(CtrlCadastro.java:53) at javax.servlet.http.HttpServlet.service(HttpServlet.java:647) at javax.servlet.http.HttpServlet.service(HttpServlet.java:728) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source)

qual IDE você está usando, e qual servidor?

tomcat e eclipse

Então cara também estou no começo dos meus estudos de java.
Mas pelo que sei até agora, você não precisa criar a session factory dessa forma pra conseguir usar as annotations do hibernate.
Pelo menos no Hibernate 4.1.9 que é a versão que eu uso.
Segue a classe HibernateUtil que creio ser a forma padrão de fazer.
Minha fonte pra esse código foi http://tigurfi.blogspot.com.br/2012/11/exemplo-de-utilizacao-hibernate-417.html.

Espero ter ajudado



package util;
 
import org.hibernate.HibernateException;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;
import org.hibernate.service.ServiceRegistryBuilder;
 
public class HibernateUtil {
 
 private static SessionFactory sessionFactory;
   private static ServiceRegistry serviceRegistry;
  
   private static SessionFactory configureSessionFactory() throws HibernateException {
       Configuration configuration = new Configuration();
       configuration.configure();
       serviceRegistry = new ServiceRegistryBuilder().applySettings(configuration.getProperties()).buildServiceRegistry();        
       sessionFactory = configuration.buildSessionFactory(serviceRegistry);
       return sessionFactory;
   }  
  
     public static SessionFactory getSessionFactory() {
         return configureSessionFactory();
     }
}

Mas se eu fizer minha classe HibernateUtil dessa maneira, como que vc faria o metodo salvar do DAO? Poderia me fala?
Eu to usando hibernate 4, acredito que os tutoriais que acho na net sao todos antigos para o 2 ou 3…

Então cara no link que eu te enviei, tem a classe que faz o Save no banco.
Da uma olhada lá.
Flw

Diz que a pagina nao existe =//

Tira o ponto do final do link