Obrigado pelas dicas! Muito bom mesmo a documentação do VRaptor e o link com o tutorial.
Agora uma pequena dúvida com o persistence.xml. Sempre utilizei o hibernate-cfg.xml e não estou muito familiarizado com o persistence e tals.
Gostaria que quando executasse isso na url do navegador http://localhost:8080/SisReqT7/usuario/manterCadastroUsuario o fluxo abaixo fosse executado.
UsuarioController
@Resource
public class UsuarioController {
private final GenericDAO dao;
private final Result result;
public UsuarioController(GenericDAO dao, Result result) {
this.dao = dao;
this.result = result;
}
@Path("/usuario/manterCadastroUsuario")
public void manterCadastroUsuario() {
}
}
GenericDAO
@Component
public class GenericDAO {
protected EntityManager manager;
public GenericDAO() {
manager = JPAFactory.getEntityManager();
}
public BaseEntity insert(BaseEntity entity) {
manager.getTransaction().begin();
manager.persist(entity);
manager.getTransaction().commit();
return entity;
}
public BaseEntity update(BaseEntity entity) {
manager.getTransaction().begin();
manager.merge(entity);
manager.getTransaction().commit();
return entity;
}
public BaseEntity selectById(BaseEntity entity) {
entity = manager.find(entity.getClass(), entity.getId());
return entity;
}
}
JPAFactory
public class JPAFactory {
private static EntityManagerFactory factory;
private JPAFactory() {};
public static EntityManager getEntityManager() {
if(factory == null) {
factory = Persistence.createEntityManagerFactory("sisReqT7");
}
return factory.createEntityManager();
}
}
persistence.xml
<persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence">
<persistence-unit name="sisReqT7">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<class>br.mil.mar.setedistnav.divPassagem.entity.OrganizacaoMilitar</class>
<class>br.mil.mar.setedistnav.divPassagem.entity.PostoGraduacao</class>
<class>br.mil.mar.setedistnav.divPassagem.entity.Usuario</class>
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect" />
<property name="hibernate.connection.url" value="jdbc:postgresql://localhost:5432/sisreqt7" />
<property name="hibernate.connection.driver_class" value="org.postgresql.Driver" />
<property name="hibernate.connection.username" value="postgres" />
<property name="hibernate.connection.password" value="postgres" />
<property name="hbm2ddl.auto" value="update" />
<property name="show_sql" value="true"/>
</properties>
</persistence-unit>
</persistence>
O web.xml está certinho e o jsp está em branco, não tem porque dá erro.
O erro no console é este:
Caused by: javax.persistence.PersistenceException: No Persistence provider for EntityManager named sisReqT7
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:54)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:32)
at br.mil.mar.setedistnav.divPassagem.jpa.JPAFactory.getEntityManager(JPAFactory.java:15)
at br.mil.mar.setedistnav.divPassagem.dao.GenericDAO.<init>(GenericDAO.java:18)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:126)
... 59 more
Qual seria o problema aí?
A senha e o usuário do post estão certinhos.
As três classes que estão no persistence.xml tem alguns relacionamentos. O problema seria com isso ou é algo com a conexão?
Agradeço!