Apostila de VRaptor, Hibernate e AJAX disponível

86 respostas
P

A Caelum está disponibilizando mais uma apostila:

Os gifs, mp3s e html básico necessário se encontra em:

Este material explica, passo a passo, como criar uma aplicação web no eclipse, utilizando o VRaptor como controlador MVC, Hibernate na camada de persistência, JSP na view e JQuery como bibilioteca javascript para efeitos visuais.

A aplicação termina com uma camada de gerenciamento de uma loja virtual de MP3s com sistema e autorização e autenticação baseado em perfis (Roles). A loja ainda conta com um sistema de drag and drop, em que você arrasta sua música para o carrinho de compras, que por AJAX adiciona esta em seu carrinho. Também integra-se com um componente flash para tocar um sample de mp3 que você está compando.

Mais detalhes sobre o conteúdo em:

86 Respostas

R

É isso ai Paulo mais uma vez a Caelum ajudando a comunidade parabens a você e todos os integrante da Caelum

P

Já tenho com que brincar final de semana que vem :wink:

[]s

M

:smiley: bom material para estudos estava procurando algo sobre aplicações WEB.

L

Muito bom Paulo, parabéns pela iniciativa.

F

Excelente material, muito interessante. Valeu!

C

Olá Paulo,

Boa apostila.
Da para aprender bastante coisa …Já sai indicando para meus amigos.

Obs: Repare no rodapé das páginas, sempre esta indicando “Capítulo 1 - Como aprender Java” … Realmente fui muito sistemático, porém como isso faz parte de um “produto” da Caelum acredito que vocês sempre buscam a perfeição.

F

Paulo,

Muito boa a apostila, era bem disso que eu estava precisando.

Valeu!

P

Humm… Muito bom!

A Paz!

E

Boa Pauloooooooooooo =) :smiley: :smiley: :smiley:

N

O material realmente é muito bom!!!
Parabéns.

G

Excelente conteúdo… e em boa hora, estava exatamente pesquisando sobre o VRaptor para um projeto web que estou iniciando.

Valeu!

R

Muito massa, mais uma vez a Caelum contribuindo com nosso aprendizado.
Parabens cara! :wink:

R

Parabéns Paulo! :slight_smile:

A

Muito bom, legal mesmo…
Obrigado pela contribuição.

Valeu

O

Parabens Paulo…

E a Caelum contribuindo mais uma vez com todos da familia Java… Todos voces estão de parabens… ate ++

M

Cada dia que passa fico mais impressionado com a Caelum!!! Muito obrigado por disponibilizar este material para a comunidade!!!

Espero ter oportunidade de fazer um curso de JSF da Caelum ainda !!!

Abraços a todos que contribuem com a comunidade Java, como a Caelum!!

C

estão de parabens, fantastica essa apostila.

J

Muito bom o tutorial, eu dei uma olhada por cima e realmente muito simples porém util.
Eu ainda nao tive a oportunidade de ver o VRaptor 2 (embora eu tenho a mundo java que fale dele), mas depois desse tutorial não tem como eu deixar, de fato, testar esse framework.
Alias, postei no meu blog (grande coisa :roll: ) esse tutorial.

Parabéns Paulo

D

Muito positiva a iniciativa da criação da apostila. Com certeza irá trazer muito mais gente para esse excelente framework.

Parabéns pela ótima idéia.

T

Sei que eu sou suspeito para falar (neh chefe Paulo :smiley: )

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…)

[]'s

A

fera cara…gostei vou arrumar um tempo ctz para ler essa apostila e praticar…!!!

afinal eu começei em java pelas apostilas fj-11 e fj-21… e indico elas para toudmundu q deseja aprender javA!

flwww

S

sucesso!!

C

Olá,

alguém que esteja fazendo o tutorial e que conheça o framewok pode me responder por que ele me da este erro:

Quando tento chamar a página:

http://localhost:8080/loja/usuario.lista.logic

ele me da a seguinte mensagem de erro:

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)
F

Muito bom cara…
Excelente material.

S

Cabral,

Parece que seu DaoInterceptor não possui o construtor público e sem argumentos requerido para que seja possível instanciá-lo.

Sérgio

C

Olá Sérgio,

obrigado pela resposta.
Quando vou rodar a parte web ele me diz que esta faltando a classe

java.lang.NoClassDefFoundError: javax/persistence/Entity

só que meu projeto tem o javaee.jar e o meu tomcat é o 5.5.23.

De uma olhadinha nas libs do projeto. Não entendo por que não funcionou.

Se puder me ajudar agradeço.

Ricardo Cabral


Q

que eu me lembre, o pacote javax.persistence está em uma dependência do hibernate, ejb-persistence.jar, algo mais ou menos assim

C

mas o prefixo javax não quer dizer extensão do pacote java? Se for isso mesmo acredito eu que faça parte dos pacotes da SUN não é???

Obrigado pela resposta.

Ricardo Cabral

F

Dependendo da versão do seu javaee.jar, ele pode não incluir as classes de javax.persistence.* (Java EE 5.0).

Melhor usar o ejb-persistence.jar, disponível nas dependências do hibernate-annotations (subdiretório “lib/”).

C

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.

Obrigado.

Ricardo Cabral

T

Olá,

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! :smiley:

Abraços!
Thiago

A

e ondi eu posso achar todass aqueles jars que o projeto da apostila pede?!??!

F

Consegui evangelizar o jquery lá pela Caelum! :smiley:

É uma ótima biblioteca, não tem motivo especial. Acho que as outras seriam igualmente suficientes, mas menos prazerosas. Um pouco de gosto pessoal.

Pessoalmente, me “apaixonei” pelo jquery por causa da filosofia: http://jquery.com/blog/2006/08/20/why-jquerys-philosophy-is-better/. Uma procura sobre “jquery vs prototype” no google dá uma idéia ainda maior.

T

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?”

Outro exemplo é o Grails. Ele tem suporte ao Prototype, Dojo e ao Yahoo UI. No entanto sobre JQuery não tem nada exceto isso aqui --> http://grails.org/Contribute+a+Tag#ContributeaTag-jQuery

De qualquer maneira gostei do JQuery. Vou conhecê-lo melhor e se ele for mesmo tudo que parece evangelizo ele também nos projetos que eu trabalhar! :smiley:

Obrigado!
Thiago

F

Excelente…

Com certeza vou dar uma conferida…

J

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é.

Abração a todos

S

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)

F

Paulo,

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);
	}

}
F

Oi Fernando,

Você está abrindo a transação em uma Session que não é a que a DaoFactory e o Dao estão usando.

Só para ter certeza, poste o código do seu HibernateUtil também.

F

Fábio,

O código segue abaixo:

HibernateUtil.java

package br.com.caelum.lojavirtual.util;

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

public class HibernateUtil {

	private static SessionFactory factory;

	/**
	 * @return
	 */
	static {
		Configuration conf = new AnnotationConfiguration();
		conf.configure();
		factory = conf.buildSessionFactory();
	}
	
	public static Session getSession() {				
		return factory.openSession();		
	}

}
F

É isso mesmo. Você está abrindo transação em uma Session que não é a usada pelo Dao/DaoFactory.

Controle as transações chamando métodos na DaoFactory ao invés de criar outra Session.

F

Fábio,

E como ficaria, por exemplo?

Obrigado.

A

Uma coisa que eu reparei.

Se eu altero um valor diretamente no banco de dados, essa alteração não se reflete imediatamente na página web. Por exemplo, carrego a página inicial e depois altero o preço de uma música. Se dou um reload na página, continua aparecendo o preço antigo.

Por quê? Imagino que seja algum tipo de cache, para não precisar ir buscar no banco toda hora, certo?

Tem como alterar isso, para fazer buscar os dados no banco a cada request?

Obrigado e parabéns pelo ótimo trabalho.

[editado] Eu reparei que depois de um tempo, cerca de 10, 15 minutos (talvez menos) ele atualiza, mas precisava que atualizasse na próxima consulta.

F

Pessoal,

Descobri qual era o erro.
Era a versão do VRaptor, eu estava usando a 2.3.2, mudei para a 2.3.3 e funcionou.

Tirei o @In, e colocou a palavra final.

@Component
@InterceptedBy(DaoInterceptor.class)
public class UsuarioLogic {

	private final DaoFactory daoFactory;
	private List<Usuario> usuarios;

               // continua o codigo...

}
B

:smiley:
Achei otimo, mas nao estou conseguindo acompanhar pois me faltam librarys que o projeto depende!!!

po, será que alguem tem um outro zip com todos os jars ultilizados ? :frowning:
abrass

M

bom dia…to seguindo a apostila, configurei o log4j no src, o vraptor.xml tbem no src e o web.xml no web-inf …mas quando acesso a http://localhost:8080/loja/usuario.formulario.logic…gera que a servlet nao esta avaliada…erro 404…

***15/06/2007 09:34:32 org.apache.catalina.core.StandardWrapperValve invoke
INFO: Servlet vraptor2 is currently unavailable

** web.xml

&lt?xml version="1.0" encoding="ISO-8859-1"?&gt

&lt;web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"&gt;

	&lt;servlet&gt;
		&lt;servlet-name&gt;vraptor2&lt;/servlet-name&gt;
		&lt;servlet-class&gt;org.vraptor.VRaptorServlet&lt;/servlet-class&gt;
		&lt;load-on-startup&gt;1&lt;/load-on-startup&gt;
	&lt;/servlet&gt;

	&lt;servlet-mapping&gt;
		&lt;servlet-name&gt;vraptor2&lt;/servlet-name&gt;
		&lt;url-pattern&gt;*.logic&lt;/url-pattern&gt;
	&lt;/servlet-mapping&gt;

&lt;/web-app&gt;

**vraptor.xml

&lt;vraptor&gt;
&lt;component&gt;br.com.ricardo.lojavirtual.logic.UsuarioLogic&lt;/component&gt;
&lt;/vraptor&gt;

**log4j

&lt?xml version="1.0" encoding="UTF-8" ?&gt
&lt;!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"&gt;
&lt;log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"&gt;

        &lt;appender name="stdout" class="org.apache.log4j.ConsoleAppender"&gt;
                &lt;layout class="org.apache.log4j.PatternLayout"&gt;
                        &lt;param name="ConversionPattern" 
                                value="%d{HH:mm:ss,SSS} %5p [%-20c{1}] %m%n"/&gt;
                &lt;/layout&gt;
        &lt;/appender&gt;

        &lt;category name="org.vraptor"&gt;
                &lt;priority value="DEBUG" /&gt;
                &lt;appender-ref ref="stdout" /&gt;
        &lt;/category&gt;

        &lt;category name="org.vraptor"&gt;
                &lt;priority value="INFO" /&gt;
                &lt;appender-ref ref="stdout" /&gt;
        &lt;/category&gt;

&lt;/log4j:configuration&gt;

*** valeuu

M

Maravilha!! agora vou pegar firme! rsss essas apostilas da Caelum são Muito boas quando puder farei um treinamento por lá.

F

Oi Ricardo,

Precisamos do log da exception que ocorre, senão não há como saber o que está acontecendo.

R

Opa… apostilas da caelum são ótimas… já li duas e aprendi MTO… vou para esta agora hehe…

só estou com uma dúvida, no Apêndice B - Criando o Ambiente todo o ambiente é montado, mas não se faz referência ao JQUERY… ele já vem implementado!!! desculpem a dúvida iniciante… mas é o que sou hehe :smiley:

A

Eu gostei muito da apostila, mas acredito que na parte de pesquisa utilisando o HQL…ainda ta fraco.

mas no geral…irado

to me divertindo com ela…e tendo varias dores de cabeça…

vai la a diva para vcs,

disponibilizar mais material sobre consultas HQL

valeu.

P

Parabéns pela ótima iniciativa! Contineum com o excelante trabalho e dissiminando o conhecimento do Java.

J

algum dos programadores poderra fornecer os fontes para mim, não consigo por para funcionar aqui, gostaria de ver onde estar o erro !

F

junior,

Qual o erro que dá? O que acontece que você não está conseguindo colocar-lo para rodar.

R

Falae Galera…

APOSTILA É MUITO BOA!!!ACABEI DE TERMINAR MEU ESTUDO COM ELA!!!

porém… agora queria me especializar mais nas bibliotecas utilizadas… alguém indica algum material bom?! um livro?! uma apostila?! um site?!

PARABÉNS PARA QUEM FEZ A APOSTILA, PARABÉNS PARA OS BRASILEIROS CRIADORES DO VRAPTOR!!!

J

em baixo

J

fsquadro, não copila fica dando erro:

NÃO EXISTE MAPEAMENTO DE SEVELET ESPECIFICADO NO WEB.XML PARA O SERVELET USUARIO.

os arquivos:
estar ai meus fontes:
tabela.sql
/***************************************************/
CREATE TABLE banco.Usuario (
id int(11) NOT NULL,
usuario varchar(50) NOT NULL,
senha varchar(50) NOT NULL,
PRIMARY KEY (id)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

/*****************************************************/

hibernate.cfg.xml
/*****************************************************/
&lt?xml version=“1.0” encoding=“UTF-8”?&gt
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd”>
<hibernate-configuration>
<session-factory>
<property name=“hibernate.connection.driver_class”>
com.mysql.jdbc.Driver
</property>
<property name=“hibernate.connection.url”>
jdbc:mysql://localhost/teste
</property>
<property name=“hibernate.dialect”>
org.hibernate.dialect.MySQLDialect

<property name=“hibernate.connection.username”>root</property>
<property name=“hibernate.connection.password”>123456</property>

<property name=“hibernate.show_sql”>false</property>
<property name=“hibernate.hbm2ddl.auto”>update</property>
<property name=“hibernate.cache.provider_class”>org.hibernate.cache.HashtableCacheProvider</property>

<property name=“hibernate.show_sql”>true</property>
<property name=“hibernate.format_sql”>true</property>

<mapping class=“br.com.caelum.lojavirtual.modelo.Usuario”/>

</session-factory>
</hibernate-configuration>

/************************************************/

varaptor.xml
/*************************************************/
<vraptor>

<component>org.vraptor.util.StatsQuery</component>

<plugin>org.vraptor.plugin.hibernate.HibernateValidatorPlugin</plugin>

</vraptor>
/************************************************/

Usuario.java
/***************************************************/
package br.com.caelum.lojavirtual.modelo;

import java.io.Serializable;

import javax.persistence.Column;

import javax.persistence.Entity;

import <a href="http://javax.persistence.Id">javax.persistence.Id</a>;

import javax.persistence.NamedQueries;

import javax.persistence.NamedQuery;

import javax.persistence.Table;

import javax.persistence.*;

/**
  • Classe de entidade Usuario
  • @author root
    */
    @Entity
    @Table(name = “Usuario”)
    @NamedQueries( {
    @NamedQuery(name = “Usuario.findById”, query = “SELECT u FROM Usuario u WHERE u.id = :id”),
    @NamedQuery(name = “Usuario.findByUsuario”, query = “SELECT u FROM Usuario u WHERE u.usuario = :usuario”),
    @NamedQuery(name = “Usuario.findBySenha”, query = “SELECT u FROM Usuario u WHERE u.senha = :senha”)
    })
    public class Usuario implements Serializable {
@Id

@Column(name = id, nullable = false)

private Integer id;

@Column(name = “usuario”, nullable = false)
private String usuario;

@Column(name = “senha”, nullable = false)
private String senha;

/** Creates a new instance of Usuario */

public Usuario() {

}

/**

  • Cria uma nova instância de Usuario com os valores especificados.
  • @param id o id do Usuario
    */
    public Usuario(Integer id) {
    this.id = id;
    }

/**

  • Cria uma nova instância de Usuario com os valores especificados.
  • @param id o id do Usuario
  • @param usuario o usuario do Usuario
  • @param senha o senha do Usuario
    */
    public Usuario(Integer id, String usuario, String senha) {
    this.id = id;
    this.usuario = usuario;
    this.senha = senha;
    }

/**

  • Define o id deste Usuario.
  • @return o id
    */
    public Integer getId() {
    return this.id;
    }

/**

  • Define o id deste Usuario para o valor especificado.
  • @param id o novo id
    */
    public void setId(Integer id) {
    this.id = id;
    }

/**

  • Define o usuario deste Usuario.
  • @return o usuario
    */
    public String getUsuario() {
    return this.usuario;
    }

/**

  • Define o usuario deste Usuario para o valor especificado.
  • @param usuario o novo usuario
    */
    public void setUsuario(String usuario) {
    this.usuario = usuario;
    }

/**

  • Define o senha deste Usuario.
  • @return o senha
    */
    public String getSenha() {
    return this.senha;
    }

/**

  • Define o senha deste Usuario para o valor especificado.
  • @param senha o novo senha
    */
    public void setSenha(String senha) {
    this.senha = senha;
    }

/**

  • Retorna um valor de código hash para o objeto. Esta implementação computa
  • um valor de código hash baseado nos campos id deste objeto.
  • @return um valor de código hash para este objeto.
    */
    @Override
    public int hashCode() {
    int hash = 0;
    hash += (this.id != null ? this.id.hashCode() : 0);
    return hash;
    }

/**

  • Determina se outro objeto é igual a este Usuario. O resultado é
  • <code>true</code> se e somente se o argumento não for nulo e for um objeto Usuario o qual
  • tem o mesmo valor para o campo id como este objeto.
  • @param object o objeto de referência com o qual comparar
  • @return <code>true</code> se este objeto é o mesmo como o argumento;
  • <code>false</code> caso contrário.
    */
    @Override
    public boolean equals(Object object) {
    // TODO: Warning - this method won’t work in the case the id fields are not set
    if (!(object instanceof Usuario)) {
    return false;
    }
    Usuario other = (Usuario)object;
    if (this.id != other.id && (this.id == null || !this.id.equals(other.id))) return false;
    return true;
    }

/**

  • Retorna uma representação literal deste objeto. Esta implementação cria
  • uma representação baseada nos campos id.
  • @return uma representação literal deste objeto.
    */
    @Override
    public String toString() {
    return “br.com.caelum.lojavirtual.modelo.Usuario[id=” + id + “]”;
    }
public void setLogin(String string) {

throw new UnsupportedOperationException(Not yet implemented);

}
public boolean getLogin() {

return false;

}

}
/**********************************************/

G

Peço a ajuda de vocês.

Aqui não cosigo baixar nenhum arquivo compactado ou executável mesmo que for para nível de estudo. Se alguém poder enviar essa apostilar para o meu e-mail agradeço.

[email removido]

R

Grinvon:
Peço a ajuda de vocês.

Aqui não cosigo baixar nenhum arquivo compactado ou executável mesmo que for para nível de estudo. Se alguém poder enviar essa apostilar para o meu e-mail agradeço.

[email removido]

Apostila enviada!!

J

Grinvon , cara bota linux ai que você baixa ate o capeta !

J

rbrugnollo, tu fez a loja virtual ? se consegui gostaria de ver:

poderia mandar para mim os fontes ?

[email removido]

obrigado !

G

Comecei a olhar a apostila a pouco tempo, realmente é um trabalho bem feito, parabéns.

P.S.: Assim que eu terminar posso tentar disponibilizar os fontes em alguma mirror para a turma do GUJ.

J

Os fontes !

http://www.vraptor.com.br/forum/posts/list/272.page

C

pessoal

estou seguindo a apostila, estava dando tudo certo, mas na hora de bater a classe UsuarioDao deu um erro na hora de bater o método:

public List&lt;Usuario&gt; listaTudo(){ return this.session.createCriteria(Usuario.class).list(); }

vejam a msg de erro na imagem anexada!

alguem pode me dizer o que fazer para resolver isso?

vlws


C

comedor_de_folhas:
pessoal

estou seguindo a apostila, estava dando tudo certo, mas na hora de bater a classe UsuarioDao deu um erro na hora de bater o método:

public List&lt;Usuario&gt; listaTudo(){ return this.session.createCriteria(Usuario.class).list(); }

vejam a msg de erro na imagem anexada!

alguem pode me dizer o que fazer para resolver isso?

vlws

*acho que resolvi…
eu estava importando :

import org.hibernate.mapping.List; e estava dando pau

ai eu puis pra importar de :

import java.util.List; ai o erro sumiu!!

sera q é isso msm? (na intuição vc poe pra importar do pacote do hibernate msm e tal!! )

S

É isso mesmo… normalmente quando se fala de List fala-se da API de Collections, da java.util.List mesmo.

Normalmente quando se trata de outra lista menos comum aí se especifica melhor…

W

Pessoal,

Alguem pode dar uma luz ai pra gente?
http://www.guj.com.br/posts/list/60386.java

Grato,
Wallfox

O

errro na hora de usuar o Interceptor

[color=red]
type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: Unable to instantiate using public br.com.caelum.lojavirtual.logic.DaoInterceptor()

org.vraptor.VRaptorServlet.service(VRaptorServlet.java:81)

javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

root cause

org.vraptor.interceptor.InterceptorInstantiationException: Unable to instantiate using public br.com.caelum.lojavirtual.logic.DaoInterceptor()

org.vraptor.interceptor.InterceptorDealer.poll(InterceptorDealer.java:68)

org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:58)

org.vraptor.interceptor.FlashScopeInterceptor.intercept(FlashScopeInterceptor.java:22)

org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)

org.vraptor.interceptor.RegisterAttributesInteceptor.intercept(RegisterAttributesInteceptor.java:38)

org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)

org.vraptor.core.VRaptorExecution.execute(VRaptorExecution.java:98)

org.vraptor.core.DefaultController.execute(DefaultController.java:46)

org.vraptor.VRaptorServlet.service(VRaptorServlet.java:70)

javax.servlet.http.HttpServlet.service(HttpServlet.java:803[/color]
D

Que beleza, essa apostila veio em boa hora. Estava mesmo procurando sobre o vraptor ultimamente.

N

esse é ocara
parabensss

N

pessoal eo não consigo integrar o projeto… com o tom cat… quando eu crio ele do zero…

mais quando eo importo o projeto ele integra de boa… alguem sabe o porque???

vlwwww

G

Tudo bem Pessoal?

Peguei a apostila e já fiz a maioria dos downloads. Só não estou conseguindo achar a ultima parte.

Ajax
JQuery com os seguintes plugins oficiais:

  • Interface
  • Thickbox
  • AjaxForm

Caso alguem possa me ajudar, ficarei grato.

Abraços.

R

Download do JQuery:

http://docs.jquery.com/Downloading_jQuery

Seus Plugins(Tem que procurar eles separado):
http://plugins.jquery.com/

G

Obrigado Rafael,

mas essa apostila que está no tópico seria para desenvolver no Linux?
Pois o jQuery pelo que vi só possui versão para Linux.

Caso seja, o que poderia usar no lugar do jQuery para windows? O que seria recomendado.

Obrigado.

R

Muito Obrigado ! Isso é que é pensar na comunidade

G

E ae pessoal,

hoje peguei a apostila pra dar uma lida e fiquei quase o dia todo ledo e gostei bastante.
Agora a hora que fui colocar todos os plugins, muitos nao deram certo. Como o de criar xml do hibernate e tals.

alguem sugere algo?

uma forma de instalar ou mudar para o linux seria uma boa?

abracos

R

Acho que não ha necessidade, eu também estou lendo, foi dificil no inicio encontrar todos os jar’s, fiquei bem perdido mas agora tá indo.Todos estão disponíveis no windows também.

E do JQuery que você falou se tinha para o windows.
Na verdade o JQuery é uma biblioteca de funções em JavaScript, portanto ele vem em um arquivo no formato .js(javascript), não existem versões diferentes para SO’s diferentes.

Você precisa importá-lo para o jsp que você for usá-lo.

G

Muito obrigado por tirar a duvida sobre o jQuery.

Sobre os plugins descobri o erro que estava dando. Era a versao do eclipse que estava usando. Agora ja insalei a maioria.

Abraco a todos.

G

E ae pessoal,

to alugando vcs um pouco…
mas é o seguinte: Agora já ta funcionando os plugins e tudo mais, só que o problema agora ta no hibernate. Configurei tudo certo e está gerando a tabela e salvando no banco. O unico problema é que nao esta removendo e nao da erro algum.

public class Dao<T> {
	
	private Session sessionDAO;
	private Class classU;
	
	public Dao(Session s, Class classU) {
		this.sessionDAO = s;
		this.classU = classU;
	}
	
	public Session getSession() {
		return this.sessionDAO;
	}
	
	public void save(T u) {
		this.sessionDAO.save(u);
	}
	
	public void remove(T u) {
		try{
		this.sessionDAO.delete(u);
		}catch(Exception e){
			e.printStackTrace();
		}
	}
	
	public void edit(T u) {
		this.sessionDAO.merge(u);
	}
	
	public List<T> getAll() {
		return this.sessionDAO.createCriteria(this.classU).list();
	}
	
	public T get(Long id) {
		return (T) this.sessionDAO.load(this.classU, id);
	}
}

Alguem sabe o que pode ser?
Se precisarem eu posto algum codigo aqui.

Abraco

Y

Quanto mais se dissemina o conhecimento, mais conhecimento é gerado, muito bom valeu

R

Valeu pelos links e pelas apostilas.

Estou curioso sobre VRaptor.

M

preciso saber se alguem conseguiu rodar essa loja , postem ae
se possivel disponibilisa o link para baixar a loja completa , obrigado

S

O segundo link, para o download dos gifs,mp3 e outros arquivos, está dando o erro 404. Não encontra dentro do site da Caelum.

Se alguem puder postar o Link com os arquivos eu agradeço!

J

AWE CARA MUITO MASSA FALEW MESMO AJUDOU PRA CARAMBA
BOA INICIATIVA :lol:

V

Já ajudando bastante :slight_smile: valeu!

P

Mais um ótimo material, mais uma apostila pra treinar.

M

LINKS QUEBRADOS!

Criado 3 de maio de 2007
Ultima resposta 8 de dez. de 2012
Respostas 86
Participantes 56