Sei que eu sou suspeito para falar (neh chefe Paulo )
Mas ficou muito legal o material… Bem o q se eh preciso em boa parte dos projetos e de maneira simples, clara e indolor. - alguem ai ainda quer usar struts? :twisted: (brincadeira gente… calma, calma…)
javax.servlet.ServletException: Unable to instantiate using public br.com.caelum.lojavirtual.logic.DaoInterceptor()
org.vraptor.VRaptorServlet.service(VRaptorServlet.java:68)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
Olá, obrigado pela ajuda de todos, funcionou, mas pelo que eu percebi não sei se é pelo fato de ser o tomcat, com o javaee.jar não funciona tem que ser esse jar que vem do hibernate mesmo.
essa apostila é realmente muito interessante. Meus sinceros parabéns. No entanto queria aproveitar e fazer uma pergunta.
Por que vocês escolheram JQuery ao invés de Prototype ou Yahoo UI?
Até folhar este tutorial eu não conhecia o JQuery. Essa biblioteca realmente parece muito interessante pelo pouco que pesquisei na net. No entanto confesso: Estou curioso para saber o motivo pelo qual vocês escolheram o JQuery!
Muito legal. Eu achei o JQuery bastante interessante. Parece que é bem tranquilo achar bons tutoriais sobre JQuery na net. E pelo pouco que vi os códigos feitos com JQuery ficam menores se comparado com os códigos feito com Prototype. A única coisa que acho estranho é que parece que esse framework ainda não faz parte do vocabulário dos desenvolvedores. Por exemplo: Neste artigo nem consideraram o JQuery na comparação entre frameworks ajax (http://www.infoq.com/news/2007/05/pick-ajax).
Rsrs… no último comentário o cara cobra: “E o JQuery?”
Eu achei muito boa a apostila e agora que me inseri nesse mundo de Java Web, achei mais fácil de compreende-la. Mas gosto de AJAX com DOJO Toolkit. JQuery é bom, mas acho inferior ao Dojo.
É bom o pessoal fazer umas comparações, tem mais bibliotecas por ai. Em Java mesmo, me impressionei com o DWR, fantástica.
Mas gosto é gosto né.
Acho que hoje os maiores frameworks Javascript são Prototype+Scriptaculous, YUI, Dojo e JQuery. (Talvez Mootools e Rico tbm).
A escolha pelo JQuery foi após fazer um comparativo entre esses todos e ver qual se adaptava melhor às nossas necessidades. O Fabio usava bastante JQuery e acabou “evangelizando” o resto do pessoal.
O JQuery é mais simples e poderoso que Prototype (o pioneiro, mas na minha opinião, com mais coisas “nojentas”). O YUI eu pessoalmente não gosto para o que precisamos nessa apostila; acho que o foco deles é mais em criar componentes ricos (tables ultra-magicas e etc).
Mas logico que poderia-se usar qualquer um desses no JSP sem alterar nada no Vraptor. (na versão 2.0 da apostila, vamos ver se mostramos inclusive a integracao com JSON)
Eu estou seguindo a apostila, estou na página 25. No tópico 4.4 Dao Genérico.
Criei as classes, tudo conforme a apostila manda fazer. Porem neste ponto (quando vou iniciar o passo 4.4) rodo o meu TesteUsuario.java e ele não está mais inserindo os registros no banco. Porém não dá nenhum erro. Vou coloca minha classe TesteUsuario para darem uma olhada.
Obrigado.
TesteUsuario.java
public class TesteUsuario {
public static void main(String[] args) {
Session session = HibernateUtil.getSession();
// cria um usuario
UsuarioDao dao = new DaoFactory().getUsuarioDao();
Usuario u = new Usuario();
u.setLogin("fsquadro");
u.setSenha("guj");
// abre transacao e insere
Transaction t = session.beginTransaction();
dao.adiciona(u);
//session.save(u);
t.commit();
// Lista os usuarios
List<Usuario> lista = dao.listaTudo();
for (Usuario usuario : lista) {
System.out.println(usuario.getLogin());
}
session.close();
}
}
EDITADO: Adicionado os códigos abaixo.
Dao.java
package br.com.caelum.lojavirtual.dao;
import java.util.List;
import org.hibernate.Session;
public class Dao<T> {
private final Session session;
private final Class classe;
public Dao(Session session, Class classe) {
this.session = session;
this.classe = classe;
}
public void adiciona(T u) {
this.session.save(u);
}
public void remove (T u) {
this.session.delete(u);
}
public void atualiza (T u) {
this.session.merge(u);
}
public List<T> listaTudo() {
return this.session.createCriteria(this.classe).list();
}
public T procura(Long id) {
return (T) session.load(this.classe, id);
}
}
DaoFactory.java
package br.com.caelum.lojavirtual.dao;
import org.hibernate.Session;
import org.hibernate.Transaction;
import br.com.caelum.lojavirtual.modelo.Usuario;
import br.com.caelum.lojavirtual.util.HibernateUtil;
public class DaoFactory {
private final Session session;
private Transaction transaction;
public DaoFactory() {
session = HibernateUtil.getSession();
}
public void beginTransaction() {
this.transaction = this.session.beginTransaction();
}
public void commit() {
this.transaction.commit();
this.transaction = null;
}
public boolean hasTransaction() {
return this.transaction != null;
}
public void rollback() {
this.transaction.rollback();
this.transaction = null;
}
public void close() {
this.session.close();
}
public Dao getUsuarioDao() {
return new Dao(this.session, Usuario.class);
}
}