Erro hibernate

10 respostas
R

não sei se é aqui…
Olá amigos…
eu encontrei esse tutorial aqui e consegui chegar até no ponto desse erro:

log4j:WARN No appenders could be found for logger (net.sf.hibernate.cfg.Environment). log4j:WARN Please initialize the log4j system properly. net.sf.hibernate.MappingException: Error reading resource: Amigo.hbm.xml at net.sf.hibernate.cfg.Configuration.addClass(Configuration.java:358) at AmigoDAO.<init>(AmigoDAO.java:10) at TesteAmigo.main(TesteAmigo.java:15) Caused by: net.sf.hibernate.MappingException: org.dom4j.DocumentException: Error on line 1 of document : Content is not allowed in prolog. Nested exception: Content is not allowed in prolog. at net.sf.hibernate.cfg.Configuration.addInputStream(Configuration.java:297) at net.sf.hibernate.cfg.Configuration.addClass(Configuration.java:355) ... 2 more Caused by: org.dom4j.DocumentException: Error on line 1 of document : Content is not allowed in prolog. Nested exception: Content is not allowed in prolog. at org.dom4j.io.SAXReader.read(SAXReader.java:355) at net.sf.hibernate.cfg.Configuration.addInputStream(Configuration.java:287) ... 3 more

eu não consigo sair daqui! Algumas informações:

  • o arquivo log4j.properties está na pasta junto com os demais arquivos
  • o classpath está ok (testo digitando no prompt “java” e aparece a mensagem para espeficar arquivo .java)
  • estou usando o JCreator 4 para compilar
  • os arquivos .jar estão todos dentro da pasta '…\Java\jdk1.6.0_02\jre\lib\ext" e “…Java\jre1.6.0_02\lib\ext”

Nem sei o que pode ser. Se alguém souber o que pode ser, fico grato pela ajuda!
Valew! []´s
Ricardo

10 Respostas

zoren

em qual lugar está log4j.properties

ele deve ficar na raiz dos pacotes

R

Olha eu criei uma pasta chamado HM e coloquei TUDO lá dentro (inclusive o log4j.properties e o arquivo Amigo.hmb.xml também). Todos estão lá… tentei tudo ainda não sai daquele erro… será que falta mais algum .jar?

zoren

Posta a estrutura dos arquivos

o contúdo do log4j e o conteúdo dos arquivos do hibernate

R

Bom a estrutura é essa:
pasta hm
>Amigo.java
>AmigoDAO.java
>TesteAmigo.java
>Amigo.class
>AmigoDAO.class
>TesteAmigo.class
>hibernate.properties
>log4j.properties
>Amigo.hbm.xml

o conteudo do log4j.properties
1. log4j.rootLogger=DEBUG, dest1   
   2.   
   3. log4j.appender.dest1=org.apache.log4j.ConsoleAppender   
   4. log4j.appender.dest1.layout=org.apache.log4j.PatternLayout   
   5. log4j.appender.dest1.layout.ConversionPattern=%d %-5p %-5c{3} %x -> 

%m%n   
   6.   
   7. #log4j.appender.dest2=org.apache.log4j.RollingFileAppender   
   8. #log4j.appender.dest2.File=bridge.log   
   9.   
  10. #log4j.appender.dest2.MaxFileSize=100KB   
  11. # Keep one backup file   
  12. #log4j.appender.dest2.MaxBackupIndex=3   
  13.   
  14. #log4j.appender.dest2.layout=org.apache.log4j.PatternLayout   
  15. #log4j.appender.dest2.layout.ConversionPattern=%d [%t] %-5p %-5c{3}(%L) 

%x -> %m%n
conteudo do hibernate.properties
1. hibernate.dialect=net.sf.hibernate.dialect.MySQLDialect  
   2. hibernate.connection.driver_class = org.gjt.mm.mysql.Driver  
   3. hibernate.connection.url = jdbc:mysql://localhost:3306/amigos  
   4. hibernate.connection.username = root  
   5. hibernate.connection.password =
conteudo do Amigo.hbm.xml
# <?xml version="1.0"?>  
# <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN" "http://hibernate.sourceforge.net/hibernate-mapping.dtd">  
# <hibernate-mapping>  
#     <class name="Amigo" table="amigos">  
#         <id name="nome" column="nome" type="string">  
#             <generator class="assigned"/>  
#         </id>  
#         <property name="endereco" type="string"/>  
#         <property name="telefone" column="fone" type="string"/>  
#         <property name="celular" column="cel" type="string"/>  
#         <property name="email" type="string"/>  
#         <property name="nascimento" type="date"/>  
#     </class>  
# </hibernate-mapping>

Bom uma pergunta: quando eu baixei o hibernate 2.1 que o tuto pedia, tinha uma pasta "lib". Precisa que TODOS aqueles .jar´s estejam no classpath, e não somente o hibernate2.jar?

Valew

[]´s

Ricardo

LPJava

seu codigo compila e roda sem log4 ? vc consegue fazer a persistencia sem log4, faca esse teste… primeiro.

R

LPJava

eu fiz assim sem o log4j e da zebra… não vai. Acho que vou desistir disso e correr atrás do iBatis que me disseram ser semelhante ao hibernate.

Valew []´s

Ricardo

LPJava

opa desiste nao, dar uma olha nos meus posts de como configurar o hibernate etc, e ver se consegue achar algo de errado ai no seu.
http://blog.camilolopes.com.br/?p=1228

Tem outros posts por lá… eu recomendaria vc comecar um novo projeto do zero seguindo os passos, assim vc vai descobrir onde errou e aprender com o erro.

abracos.

R

LPJava
Olha… é complicado… o fato é que eu começei do zero (de novo) e o erro persiste. E ademais esse tutorial que eu encontrei é para versão 2.1 e no site do hibernate.org já tá pra cima da versão 3.qualquer coisa… Na verdade eu quero aprender isso mas não para por em conteúdo Web (Spring, JSP, JSF, essas coisas). Eu tenho um aplicativo que eu estou desenvolvendo e está para desktop com Swing. É pra isso que eu vou usar (sabe quande vc põe todas as conexões ao banco, consulta, mesmo separado por MVC? os códigos ficam extensos demais e no hibernate eu crio a query de inserção, consulta e atualização e uso quantas vezes quiser!!!).
Bom eu vou ver se encontro por aí mais alguma coisa.
Mesmo assim abraço e achei seu blog interessante.

Ricardo

LPJava

lendo o erro acima, que vc mostrou. ele está acusando problemas no mapeamento. uma duvida: pq vc está usando uma versao tao antiga do hibernate? Bem independente onde vai usar se será para web ou desktop o hibernate eh neutro enquanto a isso. Ele nao está atrelado a plataforma web como vc deve saber, e nada muda na configuracao.

Eu no seu lugar, pegava a versao mais recente do hibernate, criar um projeto bem simples um java project e ia testar lá nem que fosse um "hello"dai eu ia investigar onde errei no projeto que apresenta aquela mensagem. Acho eh onde vai conseguir gastar menos tempo. E ficar menos stressado, hehe pq erros stressam quando chegam a um certo ponto :slight_smile:

flw! abraco,

R

Eu no seu lugar, pegava a versao mais recente do hibernate, criar um projeto bem simples um java project e ia testar lá nem que fosse um "hello"dai eu ia investigar onde errei no projeto que apresenta aquela mensagem. Acho eh onde vai conseguir gastar menos tempo. E ficar menos stressado, hehe pq erros stressam quando chegam a um certo ponto

LPJava
olha eu vou fazer isso e vou aproveitar uma idéia sua do seu blog e testar… acredito q dê CERTO…
Abraços
Valew as ajudas…
Ricardo.

Criado 12 de fevereiro de 2010
Ultima resposta 17 de fev. de 2010
Respostas 10
Participantes 3