Pessoal teoricamente um sistema que pega com Mysql/PostgreSql/hsql , simplesmente trocando os arquivos: hibernate.cfg.xm.l e adicionando nas suas bibliotecas o drive do correspondente banco… FUNCIONARIA.
Fiz isso, mais encontrei um erro referente a classe User.java, que é uma palavra reservada do SQL99…
Eu fiz o que falou o Paulo ai em cima… mais mesmo assim não deu !
packagebr.com.caelum.vraptor.mydvds.model;importjava.io.Serializable;importjava.util.HashSet;importjava.util.Set;importjavax.persistence.Entity;importjavax.persistence.Id;importjavax.persistence.OneToMany;importorg.hibernate.validator.Length;importorg.hibernate.validator.NotNull;importbr.com.caelum.vraptor.ioc.Component;importbr.com.caelum.vraptor.ioc.SessionScoped;importcom.google.common.base.Function;importcom.google.common.collect.Collections2;@Entity@Component@SessionScopedpublicclassUserimplementsSerializable{// Hibernate validator's annnotations/rules@Id@NotNull@Length(min=3,max=20)privateStringlogin;// Hibernate validator's annnotations/rules@NotNull@Length(min=6,max=20)privateStringpassword;// Hibernate validator's annnotations/rules@NotNull@Length(min=3,max=100)privateStringname;// user to dvd mapping,@OneToMany(mappedBy="owner")privateSet<DvdRental>rents;publicSet<DvdRental>getRents(){if(rents==null){rents=newHashSet<DvdRental>();}returnrents;}publicvoidsetRents(Set<DvdRental>dvds){this.rents=dvds;}publicSet<Dvd>getDvds(){returnnewHashSet<Dvd>(Collections2.transform(getRents(),newFunction<DvdRental,Dvd>(){@OverridepublicDvdapply(DvdRentalcopy){returncopy.getDvd();}}));}publicStringgetLogin(){returnlogin;}publicvoidsetLogin(Stringlogin){this.login=login;}publicStringgetName(){returnname;}publicvoidsetName(Stringname){this.name=name;}publicStringgetPassword(){returnpassword;}publicvoidsetPassword(Stringpassword){this.password=password;}}
Junior, sei que você vai me odiar por uns minutos, mas creio que logo você entenda meu puxão de orelha como algo bom.
Você precisa ler melhor as mensagens de erro. Já notei muito post seu com erros muito básicos de Java, e muitos deles se você tivesse lido a mensagem de erro teria entendido o que aconteceu.
Nesse seu caso: cannot open connection. Isso significa que a conexão não pode ser aberta. Quais podem ser os motivos? A exception completa pode te dizer, mas isso você também pode investigar. Sabe como?
Primeira coisa a fazer é ver se o banco está online. Você pode fazer um telnet na porta do banco de dados, no caso de um pgsql local você faz telnet localhost 5432. Assim você sabe se o banco está up ou não e isola o erro.
Caso o banco estiver ok proximo passo é ver se o URL que você colocou na definição da conexão está ok. Se você usa um datasource teste-o pelo próprio admin do glassfish.
Abraços
juniorsatanas
Garcia ! Ficou chateado nada, fico é agradecido !
Fiz tudo isso !
Tenho outro sisteminha aqui que ta usando o mesmo banco, logo ta funcionando normalmente o mydvds que não funciona, refiz todas as classes user para usuario.
confira se as configurações do hibernate.cfg.xml estão corretas…
não adianta postar aqui seu xml de novo, pq vc precisa saber se está tudo certo na sua máquina… vê se vc consegue se conectar diretamente ao Postgresql usando essas configurações…
G
garcia-jj
Junior, primeiro faça o teste para ver se o banco está ok. Há dois testes a fazer:
faça um telnet no ip e porta do banco, exemplo, telnet localhost 5432
tente conectar no pgsql por uma classe java qualquer
Assim você sabe se o erro é no seu código ou no pgsql. A impressão que tenho pela mensagem é que o banco não está rodando, ou então há um firewall bloquenado a porta caso você use remoto.
juniorsatanas
Lucas e Garcia, Obrigado pela Paciência !
infelizmente era o hibernate.cfg.xml - risos -
correto seria, erro na parte de nome, deletei o log4, e mostrou tudo ! e criou a tabela, NETBEANS satânico !
=====================BOM PROBLEMA RESOLVIDO===========================
Mas na Hora de Cadastrar os usuários ou logar no sistema não funciona !
G
garcia-jj
Junior, te peço a mesma coisa de sempre: mande as mensagens, descreva os comportamentos, se for realmente necessário mostre o trecho do código que faz isso…
Paulo_Silveira
oi junior
se o cadastro nao ta funcionando, poste pra gente o erro. se tiver stacktrace, pote ela inteira (inclusive os caused by). caso nao apareca nada precisa ligar o log no nivel debug.
abracos!
juniorsatanas
Paulo Silveira !
Primeiro era o problema com hibernate.cfg.xml , depois o problema com User.java, agora ele entra na famigerada tela de login, mas não cadastra nem loga no sistema, acho que dever ser algo no controller, estou vendo aqui mas meus conhecimento tão se resumindo a isso !
Lucas_Cavalcanti
vc tá usando transações? possivelmente o postgre não salve nada se vc não colocar dentro de uma transação
juniorsatanas
Então o Mydvds é só um exemplo ilustrativo ?
Lucas_Cavalcanti
o que vc quer dizer com isso?
ele é uma aplicação de exemplo, para mostrar algumas funcionalidades… não necessariamente uma aplicação útil…
juniorsatanas
ok então !
Paulo_Silveira
Oi Lucas
Acho que o Junior quis perguntar se tinha transacoes no MyDvds. Junior, tem sim! O HibernateProvider, que vem com o VRaptor, abre e fecha a transacao pra voce.
Liga o log em debug mode pra gente e posta o que aparece quando voce tenta criar um usuario por favor.
juniorsatanas
Paulo Silveira Opa…
Foi isso mesmo Paulo… testei aqui !
juniorsatanas
Paulo Silveira Dei um tempo no Mydvds, vou fazer a Loja Virtual, pois tem tudo na apostila…
Depois parto para o Mydvds novamente !
wariows
O erro anterior era porque vc não pode criar uma tabela com nome ‘user’ no postgresql, é palavra reservada.
juniorsatanas
sim SQL 99 !
juniorsatanas
Paulo Silveira Voltei a Trabalhar com VRaptor ! terminei os tapa buraco aqui no Struts e JSF !
Sugestão : por que você não hospeda o MYDVDS E LOJA VIRTUAL NA WEB ? para as pessoas olharem rodando !?
E outras funcionalidade, assim o pessoal ia ver como é eficiente VR3 !