Colegas estou tentando fazer da maneira mais simples possível para entender toda a estrutura do Vraptor 3 :
fiz igual recomenda a documentação: http://vraptor.caelum.com.br/documentacao/componentes/
mesmo assim da um erro no meu UsuarioDao.java
segue todo código:
package br.com.caelum.vraptor.global.model;
import java.io.Serializable;
import javax.persistence.Entity;
import javax.persistence.Id;
import org.hibernate.validator.Length;
import org.hibernate.validator.NotNull;
import br.com.caelum.vraptor.ioc.Component;
import br.com.caelum.vraptor.ioc.SessionScoped;
import javax.persistence.GeneratedValue;
@Entity
@Component
@SessionScoped
public class Usuarios implements Serializable {
@Id
@NotNull
@GeneratedValue
private Long id;
@NotNull
@Length(min = 3, max = 20)
private String login;
@NotNull
@Length(min = 6, max = 20)
private String password;
@NotNull
@Length(min = 3, max = 100)
private String nome;
get set....
package br.com.caelum.vraptor.global.dao;
import br.com.caelum.vraptor.Post;
import br.com.caelum.vraptor.global.model.Usuarios;
import br.com.caelum.vraptor.ioc.Component;
import javax.jms.Session;
@Component
public class UsuariosDao {
private final Session session;
public UsuariosDao(Session session) {
this.session = session;
}
@Post
public void adiciona(Usuarios ususrios) {
session.save(usuarios); <***********************mostra erro aqui
}
}
package br.com.caelum.vraptor.global.controller;
//import br.com.caelum.vraptor.Delete;
import java.util.ArrayList;
import java.util.List;
import br.com.caelum.vraptor.Get;
import br.com.caelum.vraptor.Path;
import br.com.caelum.vraptor.Post;
//import br.com.caelum.vraptor.Put;
import br.com.caelum.vraptor.Resource;
import br.com.caelum.vraptor.Result;
import br.com.caelum.vraptor.Validator;
import br.com.caelum.vraptor.global.dao.UsuariosDao;
import br.com.caelum.vraptor.global.interceptor.UsuariosInfo;
import br.com.caelum.vraptor.global.model.Usuarios;
import br.com.caelum.vraptor.view.Results;
@Resource
public class UsuariosController {
private final UsuariosDao dao; // seta o dao
private final Result result;
public UsuariosController(UsuariosDao dao, Result result) {
this.dao = dao;
this.result = result;
}
@Path("/usuarios") //Lista usuarios
@Get
public void lista() {
List<Usuarios> Usuarios = new ArrayList<Usuarios>();
result.include("Usuarios", Usuarios);
}
@Path("/usuarios") //Adiciona usuarios
@Post
public void adiciona(Usuarios usuarios) {
this.dao.adiciona(usuarios);
}
public void formulario() {
// povoa campos
}
}
import br.com.caelum.vraptor.ioc.Component;
import br.com.caelum.vraptor.ioc.ComponentFactory;
import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
@Component
public class SessionCreator implements ComponentFactory<Session> {
private final SessionFactory factory;
private Session session;
public SessionCreator(SessionFactory factory) {
this.factory = factory;
}
@PostConstruct
public void create() {
this.session = factory.openSession();
}
public Session getInstance() {
return session;
}
@PreDestroy
public void destroy() {
this.session.close();
}
}
import br.com.caelum.vraptor.ioc.ApplicationScoped;
import br.com.caelum.vraptor.ioc.Component;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;
@ApplicationScoped
@Component
public class HibernateControl {
private final SessionFactory factory;
public HibernateControl() {
this.factory = new AnnotationConfiguration().configure().buildSessionFactory();
}
public Session getSession() {
return factory.openSession();
}
}