Pessoal, alguem poderia me dar uma ajuda com o Hibernate, dando-me alguns passos ou indicando material de estudo? sou iniciante tanto no java quanto no hibernate e não consigo fazer o mesmo funcionar, tentei rodar alguns exemplos que vieram com o proprio hibernate e naum rolou, tentei seguir um artigo aqui do GUJ mesmo, feito pra versao 1 do hibernate, adaptei pra versao 2, mas tb tive problemas…alguem possui algum material do tipo for dummies?
comecei a trabalhar com java ha cerca de 1 mes, comecei fazendo exemplos q lidassem com arquivos, depois passei para sockets e agora fiz uma aplicacao cliente-servidor utilizando xml-rpc, nesse ponto q entraria o hibernate, pois pretendo usa-lo para conectar ao BD com as requisicoes vindas atraves do xml-rpc.
O erro q ocorre qdo tento rodar a aplicacao de exemplo do artigo q usei como base eh esse:
Exception in thread “main” java.lang.NoClassDefFoundError: org/dom4j/Attribute
at AmigoDAO.(AmigoDAO.java:10)
at Chama.main(Chama.java:4)
Esta no CLASSPATH, mas pra garantir coloquei lah no j2sdk mesmo, aih deu outro erro relativo a commons-logging, coloquei esse jar lah tb, aih deu o seguinte erro:
log4j:WARN No appenders could be found for logger (net.sf.hibernate.cfg.Environment).
log4j:WARN Please initialize the log4j system properly.
Exception in thread “main” java.lang.NoClassDefFoundError: org/apache/commons/collections/SequencedHashMap
at net.sf.hibernate.mapping.PersistentClass.(PersistentClass.java:30)
at net.sf.hibernate.mapping.RootClass.(RootClass.java:16)
at net.sf.hibernate.cfg.Binder.bindRoot(Binder.java:1242)
at net.sf.hibernate.cfg.Configuration.add(Configuration.java:249)
at net.sf.hibernate.cfg.Configuration.addInputStream(Configuration.java:285)
at net.sf.hibernate.cfg.Configuration.addClass(Configuration.java:351)
at AmigoDAO.(AmigoDAO.java:11)
at Chama.main(Chama.java:4)
log4j:WARN No appenders could be found for logger (net.sf.hibernate.cfg.Environment).
log4j:WARN Please initialize the log4j system properly.
Exception in thread “main” net.sf.hibernate.HibernateException: could not instantiate CacheProvider: net.sf.ehcache.hibernate.Provider
at net.sf.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:133)
at net.sf.hibernate.cfg.Configuration.buildSettings(Configuration.java:1132)
at net.sf.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:766)
at AmigoDAO.(AmigoDAO.java:15)
at Chama.main(Chama.java:4)
Caused by: java.lang.ClassNotFoundException: net.sf.ehcache.hibernate.Provider
at java.net.URLClassLoader$1.run(URLClassLoader.java:199)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:187)
at java.lang.ClassLoader.loadClass(ClassLoader.java:289)
at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:141)
at net.sf.hibernate.util.ReflectHelper.classForName(ReflectHelper.java:102)
at net.sf.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:130)
… 4 more
acabei de fazer isso, joguei todo o conteudo do hibernate/lib pro j2sdk/jre/lib/ext, apesar de eu jah ter posto o hibernate/lib no CLASSPATH, e ainda dah erro:
log4j:WARN No appenders could be found for logger (net.sf.hibernate.cfg.Environment).
log4j:WARN Please initialize the log4j system properly.
Exception in thread “main” net.sf.hibernate.PropertyNotFoundException: Could not find a getter for endereco in class Amigo
at net.sf.hibernate.property.BasicPropertyAccessor.getGetter(BasicPropertyAccessor.java:182)
at net.sf.hibernate.mapping.Property.getGetter(Property.java:175)
at net.sf.hibernate.persister.AbstractEntityPersister.(AbstractEntityPersister.java:733)
at net.sf.hibernate.persister.EntityPersister.(EntityPersister.java:714)
at net.sf.hibernate.persister.PersisterFactory.createClassPersister(PersisterFactory.java:42)
at net.sf.hibernate.impl.SessionFactoryImpl.(SessionFactoryImpl.java:137)
at net.sf.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:768)
at AmigoDAO.(AmigoDAO.java:15)
at Chama.main(Chama.java:4)
realmente faltava esse metodo, adicionei ele e agora me retorna esse erro:
log4j:WARN No appenders could be found for logger (net.sf.hibernate.cfg.Environment).
log4j:WARN Please initialize the log4j system properly.
Exception in thread “main” java.lang.UnsupportedOperationException: The user must supply a JDBC connection
at net.sf.hibernate.connection.UserSuppliedConnectionProvider.getConnection(UserSuppliedConnectionProvider.java:32)
at net.sf.hibernate.impl.BatcherImpl.openConnection(BatcherImpl.java:278)
at net.sf.hibernate.impl.SessionImpl.connect(SessionImpl.java:3297)
at net.sf.hibernate.impl.SessionImpl.connection(SessionImpl.java:3277)
at net.sf.hibernate.impl.BatcherImpl.prepareStatement(BatcherImpl.java:61)
at net.sf.hibernate.impl.BatcherImpl.prepareStatement(BatcherImpl.java:56)
at net.sf.hibernate.impl.BatcherImpl.prepareBatchStatement(BatcherImpl.java:109)
at net.sf.hibernate.persister.EntityPersister.insert(EntityPersister.java:460)
at net.sf.hibernate.persister.EntityPersister.insert(EntityPersister.java:442)
at net.sf.hibernate.impl.ScheduledInsertion.execute(ScheduledInsertion.java:29)
at net.sf.hibernate.impl.SessionImpl.executeAll(SessionImpl.java:2407)
at net.sf.hibernate.impl.SessionImpl.execute(SessionImpl.java:2360)
at net.sf.hibernate.impl.SessionImpl.flush(SessionImpl.java:2229)
at AmigoDAO.insert(AmigoDAO.java:20)
at Chama.main(Chama.java:11)
parece-me um problema de mapeamento com o driver JDBC eh isso? segue o arquivo de configuracao q usei:
hibernate.connection.driver class = org.gjt.mm.mysql.Driver # o driver
hibernate.connection.url = jdbc:mysql://localhost:3306/test # a url
hibernate.connection.username = user # o username
hibernate.connection.password = pass # a senha
adicionei ele esse arquivo e tb o jar do mysql ao CLASSPATH .
Qual seria o erro agora?
se quiserem posso mandar todos os arquivos q estou usando…
Parece que ele não está encontrando o seu arquivo hibernate.properties!!!
Mas não sei afirmar se é realmente isso…
O arquivo está no classpath e se chama hibernate.properties???
estou mandando todos os arquivos(classes e config) pra ver se alguem me ajuda a encontrar os meus erros:
Classe Amigo
public class Amigo
{
public String nome;
public String endereco;
public String telefone;
public String celular;
public String email;
public java.util.Date nascimento;
public Amigo(){
}
public String getNome(){
return nome;
}
public void setNome(String nome){
this.nome = nome;
}
public String getEndereco(){
return endereco;
}
public void setEndereco(String endereco){
this.endereco = endereco;
}
public String getTelefone(){
return telefone;
}
public void setTelefone(String telefone){
this.telefone = telefone;
}
public String getCelular(){
return celular;
}
public void setCelular(String celular){
this.celular = celular;
}
public String getEmail(){
return email;
}
public void setEmail(String email){
this.email = email;
}
public java.util.Date getNascimento(){
return nascimento;
}
public void setNascimento(java.util.Date nascimento){
this.nascimento = nascimento;
}
hibernate.connection.driver class = org.gjt.mm.mysql.Driver # o driver
hibernate.connection.url = jdbc:mysql://localhost:3306/agenda # a url
hibernate.connection.username = user # o username
hibernate.connection.password = pass # a senha
Classe Chama
public class Chama{
public Chama(){
}
public static void main(String[] args) throws Exception{
Amigo amigo = new Amigo();
AmigoDAO novo = new AmigoDAO();
amigo.nome=“Anselmo”;
amigo.endereco=“Carlos Kraemer”;
amigo.telefone=“2134567”;
amigo.celular=“91231203”;
amigo.email=“anselmo@bol.com.br”;
amigo.nascimento= new java.util.Date(104,07,29);
novo.insert(amigo);
}
}
serah q alguma alguma caridosa pode me dar uma mão? estou desde ontem encima disso e nad ainda…