Problemas com o Hiberclipse

28 respostas
H

Pessoal,
o Hiberclipse funciona com o Firebird?
Estou usando o Eclipse 3.0.1 e coloquei os .jar do firebird no meu projeto, instalei o Hiberclipse, coloquei nas propriedades do projeto(parte do HiberClipse) os valores “org.firebirdsql.jdbc.FBDriver” em Driver e “C:\JDBC\FireBird\firebirdsql.jar” em JDBC Driver. Coloquei o hibernate.properties na pasta do meu projeto com a seguinte configuração:

FireBird

hibernate.dialect cirrus.hibernate.sql.InterbaseDialect
hibernate.connection.driver_class org.firebirdsql.jdbc.FBDriver
hibernate.connection.url jdbc:firebirdsql:localhost/3050:D:/Dados/Interbase/BPEAM/AcervoGeral-LIB/Alibdbs1.gdb
hibernate.connection.username SYSDBA
hibernate.connection.password masterkey

Quando vou no “Relationship View” e coloco “Create Hibernate mapping files”, dá a seguinte mensagem de erro: createHibernateMappingActions. Só isso e um botão de OK.
Estou fazendo alguma coisa errada ou o Hiberclipse não suporta o Firebird?

Estou usando o j2sdk e j2re na versão 1.4.2_07. Instalei o Hiberclipse através do “Softwqare Updates” do Eclipse(url=http://hiberclipse.sourceforge.net/siteupdate_3)

Obrigado.
Herlen

28 Respostas

H

E a versão do Firebird é 1.5, com o jdbc para 1.5 tbm.

Valeu

ricardolecheta

boa pergunta :slight_smile:

nunca testei com firebird, deixa eu testar e depois te respondo.

ricardolecheta

Olá,

Funcionou, Firebird 1.5 e Eclipse 3.0.1. Porém não leu os relacionamentos… os *.hbm.xml ficam somente com as propriedades.

Nas propriedades do projeto eu coloquei:

pacote: portal.test.model

Driver: org.firebirdsql.jdbc.FBDriver
URL: jdbc:firebirdsql:localhost/3050:C:/db/FIREBIRD.FDB
Username: SYSDBA
Senha: masterkey
Schema: em branco

JDBC Driver: F:\java\db\firebirdsql-full.jar

Coloque o firebirdsql-full.jar, somente o firebirdsql.jar não funcionou.

Primeiro clique em test connection nas propriedades do projeto. Se funcionar tente o “Show relationships”, e depois o “Create mapping files”…

Em caso de erro veja em Window->Show View->Other->PDE Runtime->Error log. Se tiver alguma stack manda pra mim.

abraço

H

Beleza, Ricardo.
Nada melhor do que falar com o pai da criança.
Deu certo a conexão, mostrou as tabelas(aqui mostrou também os relacionamentos) quando eu cliquei em “Shoe Relationships” deu certo também criar os arquivos de mapeamentos do hibernate quando eu cliquei em “Create mapping files”. Mas na hora que eu clico em Hiberclipse–>“Code Generator”, dá a seguinte mensagem de erro no Error Log:

? 1 Mar 11, 2005 08:29:13.184 getProjectSourceString() not found : SQLMagazine

No Console,  o erro:

08:29:17,480  INFO Generator:95 - Generating 1 in SQLMagazine

java.lang.NullPointerException

at net.sf.hibernate.tool.hbm2java.BasicRenderer.isPropertySet(BasicRenderer.java:611)

at net.sf.hibernate.tool.hbm2java.BasicRenderer.generateConcreteEmptyClasses(BasicRenderer.java:332)

at net.sf.hibernate.tool.hbm2java.BasicRenderer.render(BasicRenderer.java:59)

at net.sf.hibernate.tool.hbm2java.Generator.write(Generator.java:138)

at net.sf.hibernate.tool.hbm2java.Generator.writeRecur(Generator.java:115)

at net.sf.hibernate.tool.hbm2java.Generator.generate(Generator.java:104)

at net.sf.hibernate.tool.hbm2java.CodeGenerator.main(CodeGenerator.java:125)

Estou fazendo alguma besteira? Esqueci de configurar alguma coisa?
Muitíssimo obrigado pela ajuda que você está dando,
Herlen

H

Aliás, parabéns pelo excelente trabalho com essa ferramenta. Ela será muito útil par mim e para muita gente por aí.

Valeu,
Herlen

ricardolecheta

Herlen,

Como está configurado seu projeto? Ele possui um “source folder”?

por exemplo: file->new>source folder…

Pela cara do erro, deu um problema na hora do hiberclipse descobrir qual era o diretório que fica os fontes.

H

ricardolecheta:
Herlen,

Como está configurado seu projeto? Ele possui um “source folder”?

por exemplo: file->new>source folder…

Pela cara do erro, deu um problema na hora do hiberclipse descobrir qual era o diretório que fica os fontes.

Ricardo. Fui incluir um source folder como vc falou e começou a dar uns erros estranhos aqui no eclipse. Tipo a gente mandar criar uma Package e ele Criar um Folder. Resolvi então criar um novo projeto e fazer tudo novamente. Dessa vez não aconteceu o erro anterior. Deu o erro abaixo:

log4j:ERROR setFile(null,true) call failed.

java.io.FileNotFoundException: log\test.log (The system cannot find the path specified)

at java.io.FileOutputStream.openAppend(Native Method)

at java.io.FileOutputStream.(FileOutputStream.java:177)

at java.io.FileOutputStream.(FileOutputStream.java:102)

at java.io.FileWriter.(FileWriter.java:61)

at org.apache.log4j.FileAppender.setFile(FileAppender.java:316)

at org.apache.log4j.FileAppender.activateOptions(FileAppender.java:182)

at org.apache.log4j.PropertyConfigurator.configureOptionHandler(PropertyConfigurator.java:451)

at org.apache.log4j.PropertyConfigurator.parseAppender(PropertyConfigurator.java:585)

at org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:555)

at org.apache.log4j.PropertyConfigurator.configureRootCategory(PropertyConfigurator.java:462)

at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:388)

at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:414)

at org.apache.log4j.helpers.OptionConverter.selectAndConfigure(OptionConverter.java:345)

at org.apache.log4j.Category.(Category.java:160)

at org.apache.commons.logging.impl.Log4JLogger.(Log4JLogger.java:102)

at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)

at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)

at java.lang.reflect.Constructor.newInstance(Constructor.java:274)

at org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:525)

at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:272)

at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:246)

at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:395)

at net.sf.hibernate.tool.hbm2java.CodeGenerator.(CodeGenerator.java:32)

java.lang.ExceptionInInitializerError

Caused by: org.apache.commons.logging.LogConfigurationException: java.lang.reflect.InvocationTargetException

at org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:532)

at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:272)

at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:246)

at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:395)

at net.sf.hibernate.tool.hbm2java.CodeGenerator.(CodeGenerator.java:32)

Caused by: java.lang.reflect.InvocationTargetException

at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)

at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)

at java.lang.reflect.Constructor.newInstance(Constructor.java:274)

at org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:525)

 4 more

Caused by: java.lang.VerifyError: (class: org/apache/log4j/LogManager, method:  signature: ()V) Incompatible argument to function

at org.apache.log4j.Logger.getLogger(Logger.java:85)

at org.apache.commons.logging.impl.Log4JLogger.(Log4JLogger.java:102)

 9 more

Exception in thread main
Então eu criei o folder log abaixo do meu projeto. Agora está dando o erro:

java.lang.ExceptionInInitializerError

Caused by: org.apache.commons.logging.LogConfigurationException: java.lang.reflect.InvocationTargetException

at org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:532)

at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:272)

at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:246)

at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:395)

at net.sf.hibernate.tool.hbm2java.CodeGenerator.(CodeGenerator.java:32)

Caused by: java.lang.reflect.InvocationTargetException

at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)

at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)

at java.lang.reflect.Constructor.newInstance(Constructor.java:274)

at org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:525)

 4 more

Caused by: java.lang.VerifyError: (class: org/apache/log4j/LogManager, method:  signature: ()V) Incompatible argument to function

at org.apache.log4j.Logger.getLogger(Logger.java:85)

at org.apache.commons.logging.impl.Log4JLogger.(Log4JLogger.java:102)

 9 more

Exception in thread main
H

Foi criado um arquivo test.log dentro do folder log, mas ele está vazio.

ricardolecheta

sinistro, bom agora não é mais do hiberclipse :slight_smile:

qual sua versão do Hibernate e Hibernate Tools?~

hibernate.dialect cirrus.hibernate.sql.InterbaseDialect

Pelo pacote “cirrus.hibernate” da de ver que vc está utilizando uma versão antiga do hibernate, tente atualizar para uma mais nova, por exemplo 2.1.8…

este VerifyError acontece quando vc está utilizando uma versão incorreta dos jars.

H

Estava utilizando a versão 2.1.4.
Vou atualizar agora para 2.1.8.

Valeu.

ricardolecheta

herlencosta:
Estava utilizando a versão 2.1.4.
Vou atualizar agora para 2.1.8.

Valeu.

não precisa. Acho que não é esse o problema.

H

Rodrigo. Sei que já não é mais da sua ossada, pois aparentemente o Hiberclipse está funcionando corretamente. Mase se vc puder me ajudar, lá vai. Continua dando o erro:

no error log:
getProjectSourceString() not found : TesteHibernate

An exception stack trace could not be found.

no console :

java.lang.ExceptionInInitializerError

Caused by: org.apache.commons.logging.LogConfigurationException: java.lang.VerifyError: (class: org/apache/log4j/LogManager, method:  signature: ()V) Incompatible argument to function (Caused by java.lang.VerifyError: (class: org/apache/log4j/LogManager, method:  signature: ()V) Incompatible argument to function)

at org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:538)

at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:235)

at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:209)

at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:351)

at net.sf.hibernate.tool.hbm2java.CodeGenerator.(CodeGenerator.java:32)

Caused by: java.lang.VerifyError: (class: org/apache/log4j/LogManager, method:  signature: ()V) Incompatible argument to function

at org.apache.log4j.Logger.getLogger(Logger.java:85)

at org.apache.commons.logging.impl.Log4JLogger.getLogger(Log4JLogger.java:229)

at org.apache.commons.logging.impl.Log4JLogger.(Log4JLogger.java:65)

at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)

at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)

at java.lang.reflect.Constructor.newInstance(Constructor.java:274)

at org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:529)

 4 more

Exception in thread main
ricardolecheta

Alguns passos para vc fazer:

1 - File -> new -> Project -> Java project
precisa ser um projeto java

  1. File -> new -> source folder

  2. Coloque no classpath todos os jars do hibernate 2.1.4.

  3. Coloque o hibernate-tools.jar e jdom.jar no classpath tb

5 - Agora nao tem erro.

VerifyError é devido as versões do jar.

H

Rodrigo,
instalei o pacote do Eclipse da IBM e funcionou. Algumas classes foram geradas com alguns erros(Tipo propriedades geradas mais de uma vez e os respectivos gets e sets duplicados). Eu consertei na mão esses probleminhas. Agora estou com o seguinte problema: Na hora de abrir o Ddoc.hbm.xml está dando o erro abaixo. Sei que ele consegue encontrar o Ddoc.hbm.xml, pois se eu tirá-lo da pasta ele dá a mensagem de arquivo não encontrado. Isso me leva a crer que é algum problema no arquivo Ddoc.hbm.xml, após o erro está a descrição do respectivo arquivo. Vc poderia ver o que há de errado com ele?

exception

org.apache.jasper.JasperException: net.sf.hibernate.MappingException: Error reading resource: dto/Ddoc.hbm.xml

org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:372)

org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)

org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)

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

org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1056)

org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:388)

org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:231)

org.apache.struts.action.ActionServlet.process(ActionServlet.java:1164)

org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:415)

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

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

root cause

java.lang.RuntimeException: net.sf.hibernate.MappingException: Error reading resource: dto/Ddoc.hbm.xml

bd.ConnectionFactory.(ConnectionFactory.java:71)

bd.ConnectionFactory.getInstance(ConnectionFactory.java:105)

bd.DdocService.getDdocList(DdocService.java:198)

org.apache.jsp.pages.respostapesquisa_jsp._jspService(respostapesquisa_jsp.java:122)

org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)

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

org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)

org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)

org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)

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

org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1056)

org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:388)

org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:231)

org.apache.struts.action.ActionServlet.process(ActionServlet.java:1164)

org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:415)

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

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

Arquivo Ddoc.hbm.xml

<?xml version="1.0" encoding="UTF-8"?>

Obrigado,
Herlen

H

Acho que encontrei o problema, mas não a solução, hehehe

No trecho a seguir, do arquivo Ddoc.hbm.xml gerado pelo hiberclipse, possui uma referência para a classe dto.DdocPK, a qual não foi gerada pelo Hiberclipse. Vc saberia dizer porque? Vou tentar gerar tudo novamente para ver se dessa vez ele gera todas as classes.

H

Algums outros arquibvos de mapeamento hbm.xml que fazem referência a classes *PK foram criados e outros não.

H

Desculpa, Ricardo, encontrei as classes *PK geradas. O erro continua com aquele Ddoc.hbm.xml. Vou tentar descobrir o que é. Se vc tiver alguma dica, agradeço.

Valeu,
Herlen

ricardolecheta

Eu acho que a classe dto.DdocPK vai ser gerada quando vc gerar o CodeGenerator…

H

Ela foi gerada, tinha sido engano meu. Não tinha conseguido achá-la. Desculpa. O problema que está acontecendo agora é que na minha classe connection factory(connectionfactory.java), na ao passar pela linha de comando “Configuration cfg = new Configuration().addClass(dto.Sistema.class);” dá o erro abaixo. Note que eu mudei a classe Ddoc para Sistema, pois essa classe é mais simples e não faz referência a nenhuma outra classe. Dá o mesmo erro que estava dando na Ddoc. Estou achando que é o hbm.xml mal formado. o Sistema.hbm.xml está logo após o erro. Vc poderia dar uma olhada nele para ver se está ok e se é ele que está causando o erro abaixo?

Obrigado,
Herlen

exception

org.apache.jasper.JasperException: net.sf.hibernate.MappingException: Error reading resource: dto/Sistema.hbm.xml

org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:372)

org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)

org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)

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

org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1056)

org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:388)

org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:231)

org.apache.struts.action.ActionServlet.process(ActionServlet.java:1164)

org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:415)

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

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

root cause

java.lang.RuntimeException: net.sf.hibernate.MappingException: Error reading resource: dto/Sistema.hbm.xml

bd.ConnectionFactory.(ConnectionFactory.java:184)

bd.ConnectionFactory.getInstance(ConnectionFactory.java:218)

bd.DdocService.getDdocList(DdocService.java:198)

org.apache.jsp.pages.respostapesquisa_jsp._jspService(respostapesquisa_jsp.java:122)

org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)

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

org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)

org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)

org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)

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

org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1056)

org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:388)

org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:231)

org.apache.struts.action.ActionServlet.process(ActionServlet.java:1164)

org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:415)

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

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

Arquivo Sistema.hbm.xml

<?xml version="1.0" encoding="UTF-8"?>
H

Apesar de não ter notado nada de errado com o arquivo Sistema.hbm.xml. Acredito que possa ser mal formação do hbm.xml, pois se eu retirar o arquivo Sistem. hbm.xml dá o erro: org.apache.jasper.JasperException: net.sf.hibernate.MappingException: Resource: dto/Sistema.hbm.xml not found
ou seja, ele consegue achar o arquivo, só que ele não consegue ler direito.

Herlen

ricardolecheta

Herlen, o problema não é sobre o Hiberclipse. O mapping está correto.

Tente remover algumas <properties do hbml.xml…

É bom colocar o nome do pacote junto com o nome da classe;

<class name="pacote.Sistema"
H

Ricardo,
fiz como vc falou, deixei no Sistema.hbm.xml apenas o código abaixo. Repare que eu coloquei a package dto junto ao nome da classe. Continua dando o mesmo erro. Os pouco cabelos que tinha ou cairam ou ficaram brancos da semana passada para cá, hehehe.

Valeu,
Herlen

<?xml version="1.0" encoding="UTF-8"?>
ricardolecheta

use o xmlbuddy no eclipse, ele faz o parser e mostra se existem erros no xml…

Está faltando o <id … É obrigatório para o hibernate.

falow

H

Blz, Ricardo.
Vou testar.
Outra coisa, estou tentando instalar o Hiberclipse Pelo Update Manager do Eclipse numa máquina que está atrás de um proxy e não está dando certo. Acho que é por causa do proxy. Tem como instalar baixando os pacotes e instalando off line?

Herlen

H

Baixei o arquivo net.sourceforge.hiberclipse_2.0.0.zip e descompactei dentro do diretório c:\Eclipse e não funcionou.

H

Agora deu certo, era apenas o id que estava faltando mesmo.

Muito obrigado pela ajuda.
Herlen

ricardolecheta

herlencosta:
Baixei o arquivo net.sourceforge.hiberclipse_2.0.0.zip e descompactei dentro do diretório c:\Eclipse e não funcionou.


Instale o 2.0.1

http://prdownloads.sourceforge.net/hiberclipse/net.sourceforge.hiberclipse_2.0.1.zip?download

H

ricardolecheta:
herlencosta:
Baixei o arquivo net.sourceforge.hiberclipse_2.0.0.zip e descompactei dentro do diretório c:\Eclipse e não funcionou.


Instale o 2.0.1

http://prdownloads.sourceforge.net/hiberclipse/net.sourceforge.hiberclipse_2.0.1.zip?download

Valeu, Ricardo. Deu certo.

Obrigado.

Criado 10 de março de 2005
Ultima resposta 21 de mar. de 2005
Respostas 28
Participantes 2