Erro Hibernate org.hibernate.InvalidMappingException: Could not parse mapping document from resourc  XML
Índice dos Fóruns » Persistência: Hibernate, JPA, JDBC e outros
Autor Mensagem
renato1010
Thread.start()
[Avatar]

Membro desde: 18/10/2008 11:17:13
Mensagens: 37
Offline

Olá pessoal, to iniciando os estudos em hibernate e to com o seguinte problema.

vamos do ínicio estou usando as seguintes bibliotecas

hibernate3
jta-1.1
antlr-2.7.6
commons-collections-3.1
dom4j-1.6.1
javassist-3.9.0.GA
c3p0-0.9.1
ehcache-1.2.3
slf4j-simple-1.5.2
slf4j-api-1.5.2
postgresql-8.4-701.jdbc4.jar

tenho 2 documento xml e 2 classe java

Aluno.java




GravaAluno.java





aluno.hbm.xml





hibernate.cfg.xml




quando executo a classe gravaAluno
me retorna um erro
Erro na inserção : org.hibernate.InvalidMappingException: Could not parse mapping document from resource aluno.hbm.xml

Ja procurei, mas não consigo achar o erro.

Para esclarecimento, este mesmo problema ja foi relatado aqui no forum, no seguinte link:

http://www.guj.com.br/posts/list/132888.java#715383

So que o cara em questão estava usando o MySQL, aí mudou pro Postgre e o problema foi resolvido. Eu ja estou usando Postgre, por isso a "solução" que ele encontrou não vale pra mim.

To usando Netbeans 6.8

Alguém poderia ajudar?
Desde já, agradeço a atenção.

This message was edited 1 time. Last update was at 21/02/2010 15:58:41

Alessandro Lazarotti
Virtual Machine Man
[Avatar]

Membro desde: 21/01/2004 14:12:54
Mensagens: 718
Offline

Tente cololocar a classe Aluno dentro de algum pacote como br.com.nomedesuaempresa.entity, se ainda não estiver.
No mapeamento do hbm.xml, coloque em classe o nome inteiramente qualificado desta, ou seja, o pacote + classe. Exemplo:
'<class name="br.com.nomedesuaempresa.entity.Aluno '

Mas de verdade mesmo, utilize anotações no lugar de arquivos .hbm.xml. É bem mais simples de escrever os mapeamentos.
Estude também JPA.

Um ótimo livro sobre utilização do hibernate e JPA é :
http://www.manning.com/bauer2/ (Java Persistence with Hibernate)

Leitura indispensável.

[]s

This message was edited 1 time. Last update was at 21/02/2010 16:22:12


... Lezinho
------------------------
twitter: @lazarotti
http://alessandrolazarotti.wordpress.com/
http://jbossbrasil.org/

[Email] [MSN]
renato1010
Thread.start()
[Avatar]

Membro desde: 18/10/2008 11:17:13
Mensagens: 37
Offline

Ola, bom a classe Aluno está dentro do pacote padrão, bem como a classe gravaAluno e os arquivos xml. Sendo assim, deveria conseguir mapear sem problemas. Quanto a utilizar anotações, estou começando a estudar hibernate e não sei como fazer ainda. Ja tentei colocar a classe aluno dentro de algum pacote e dpois coloquei no mapeamento do aluno.hbm.xml o caminho completo (pacote + classe). Mas o problema persiste.
Alessandro Lazarotti
Virtual Machine Man
[Avatar]

Membro desde: 21/01/2004 14:12:54
Mensagens: 718
Offline

Você pode copiar aqui a stack trace do erro?

... Lezinho
------------------------
twitter: @lazarotti
http://alessandrolazarotti.wordpress.com/
http://jbossbrasil.org/

[Email] [MSN]
Requena
Debugger
[Avatar]

Membro desde: 18/02/2010 16:52:07
Mensagens: 66
Offline

renato1010 wrote:Ola, bom a classe Aluno está dentro do pacote padrão, bem como a classe gravaAluno e os arquivos xml. Sendo assim, deveria conseguir mapear sem problemas. Quanto a utilizar anotações, estou começando a estudar hibernate e não sei como fazer ainda. Ja tentei colocar a classe aluno dentro de algum pacote e dpois coloquei no mapeamento do aluno.hbm.xml o caminho completo (pacote + classe). Mas o problema persiste.


Tipo.... a propriedade alu_codigo no banco de dados esta como primary key?

Cola o script do banco aqui tb...
renato1010
Thread.start()
[Avatar]

Membro desde: 18/10/2008 11:17:13
Mensagens: 37
Offline

Ola pessoal.

Obrigado aí pela atenção.
Consegui resolver o problema.
Deixei o hibernate.cfg.xml dentro do pacote padrão e criei um pacote novo colocando dentro dele as classes Aluno e GravaAluno e o arquivo aluno.hbm.xml.

No mapeamento coloquei nomedopacotenovo/aluno.hbm.xml (antes tinha tentado isso colocando nomedopacotenovo.aluno.hbm.xml), dessa forma funcionou.

Agradeço a todos pela ajuda aí.

This message was edited 2 times. Last update was at 21/02/2010 23:39:12

klebernss
Thread.start()
[Avatar]

Membro desde: 27/01/2008 19:36:33
Mensagens: 25
Localização: guarujá - sp
Offline

Tudo o que eu quero é apenas estabelecer um mapeamento entre a classe intranet.Papel e a tabela Intranet.dbo.TB_PAPEL no servidor 192.1.1.13\Producao - SQL Server 2008. Meu maior suspeito é essa barra invertida que eu não sei como se comporta na string de conexão do hibernate.
Segue abaixo os resources.


hibernate.cfg.xml

<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.driver_class">com.microsoft.sqlserver.jdbc.SQLServerDriver</property>
<property name="hibernate.connection.url">jdbc:sqlserver://192.1.1.13\PRODUCAO;DatabaseName=Intranet</property>
<property name="hibernate.connection.username">usrIntra</property>
<property name="hibernate.connection.password">intra</property>
<property name="hibernate.connection.pool_size">10</property>
<property name="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</property>
<property name="hibernate.current_session_context_class">org.hibernate.context.ManagedSessionContext</property>
<property name="hibernate.cache.use_second_level_cache">false</property>
<property name="hibernate.cache.use_query_cache">false</property>
<property name="hibernate.cache.provider_class">org.hibernate.cache.NoCacheProvider</property>
<property name="hibernate.show_sql">true</property>

<mapping resource="intranet/Papel.hbm.xml"/>
</session-factory>
</hibernate-configuration>


hibernate.properties

hibernate.dialect = org.hibernate.dialect.SQLServerDialect
hibernate.connection.driver_class = com.microsoft.sqlserver.jdbc.SQLServerDriver
hibernate.connection.url = jdbc:sqlserver://192.1.1.13\PRODUCAO;DatabaseName=Intranet
hibernate.connection.username = usrIntra
hibernate.connection.password = intra


Tentativa 1 - Com hibernate.cfg.xml

SessionFactory sessao = new Configuration().configure().buildSessionFactory();
sessao.openSession();


Tentativa 2 - Com hibernate.properties

SessionFactory factory = new Configuration().addClass(Papel.class).buildSessionFactory();
Session session = factory.openSession();
session.flush();
session.close();


Erro apresentado

org.hibernate.InvalidMappingException: Could not parse mapping document from resource intranet/Papel.hbm.xml


Se alguém puder me ajudar, eu agradeceria muito. Obrigado.

Vixe... um desenvolvedor dot net querendo virar a casaca. Tô adorando o JAVA.
[Email] [WWW] [MSN]
klebernss
Thread.start()
[Avatar]

Membro desde: 27/01/2008 19:36:33
Mensagens: 25
Localização: guarujá - sp
Offline

Segue também as classes para mapeamento.

intranet.Papel.java

package intranet;

public class Papel {
private String nome;
private String descricao;
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getDescricao() {
return descricao;
}
public void setDescricao(String descricao) {
this.descricao = descricao;
}

}


Papel.hbm.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN" "http://hibernate.sourceforge.net/hibernate-mapping.dtd">
<hibernate-mapping>
<class name="Papel" table="dbo.TB_PAPEL">
<id name="nome" column="NOME" type="string">
<generator class="assigned"/>
</id>
<property name="descricao" column="DESCRICAO" type="string"/>
</class>
</hibernate-mapping>


Vixe... um desenvolvedor dot net querendo virar a casaca. Tô adorando o JAVA.
[Email] [WWW] [MSN]
klebernss
Thread.start()
[Avatar]

Membro desde: 27/01/2008 19:36:33
Mensagens: 25
Localização: guarujá - sp
Offline

Aê, bando de pé de breque, consegui!

Mudei o cabeçalho do hbm.xml de:
"-//Hibernate/Hibernate Mapping DTD//EN"
"http://hibernate.sourceforge.net/hibernate-mapping.dtd"
Para:
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

Com o hibernate.cfg.xml funcionou normalmente.

Com o hibernate.properties não.
Dá o erro com.microsoft.sqlserver.jdbc.SQLServerException: The TCP/IP connection to the host 192.1.1.13PRODUCAO, port 1433 has failed.

Não há nada de errado com o servidor, pois é a mesma string de conexão no cfg.xml e lá funciona normalmente.

Alguém tem alguma sugestão?

Vixe... um desenvolvedor dot net querendo virar a casaca. Tô adorando o JAVA.
[Email] [WWW] [MSN]
klebernss
Thread.start()
[Avatar]

Membro desde: 27/01/2008 19:36:33
Mensagens: 25
Localização: guarujá - sp
Offline

Pessoal, consegui denovo!

Ao contrário do hibernate.cfg.xml, quando se está no hibernate.properties, ele trata a string de conexão como uma String mesmo.
Ou seja, não se pode escrever: hibernate.connection.url = jdbc:sqlserver://192.1.1.13\PRODUCAO;DatabaseName=Intranet .
Tem que ser: hibernate.connection.url = jdbc:sqlserver://192.1.1.13\\PRODUCAO;DatabaseName=Intranet .

E pra saber disso, hein?! Puro tentative/error.

Grande Java!!!

Vixe... um desenvolvedor dot net querendo virar a casaca. Tô adorando o JAVA.
[Email] [WWW] [MSN]
klebernss
Thread.start()
[Avatar]

Membro desde: 27/01/2008 19:36:33
Mensagens: 25
Localização: guarujá - sp
Offline

Pessoal, consegui denovo!

Ao contrário do hibernate.cfg.xml, quando se está no hibernate.properties, ele trata a string de conexão como uma String mesmo.
Ou seja, não se pode escrever: hibernate.connection.url = jdbc:sqlserver://192.1.1.13\PRODUCAO;DatabaseName=Intranet .
Tem que ser: hibernate.connection.url = jdbc:sqlserver://192.1.1.13\\PRODUCAO;DatabaseName=Intranet .

E pra saber disso, hein?! Puro tentative/error.

Grande Java!!!

Vixe... um desenvolvedor dot net querendo virar a casaca. Tô adorando o JAVA.
[Email] [WWW] [MSN]
 
Índice dos Fóruns » Persistência: Hibernate, JPA, JDBC e outros
Ir para:   
Powered by JForum 2.1.8 © JForum Team