Problema de Grails + Firebird
05/12/2012 22:04
0
Olá pessoal, tudo bem?

Estou com um problema que está bem dificil resolver.

Estou tentando conectar Firebird com Grails.

O que eu fiz foi modificar o arquivo 'BuildConfig':

dependencies {
runtime 'org.firebirdsql.jdbc:jaybird-jdk16:2.2.1'
}


E o arquivo DataSource:

environments {
development {
dataSource {
dbCreate = "create-drop"
url = "jdbc:firebirdsql:localhost/3050:/Users/carlos/Downloads/JURIDICA.GDB?lc_ctype=UTF-8"
driverClassName = "org.firebirdsql.jdbc.FBDriver"
username = "sysdba"
password = "masterkey"
dialect = "org.hibernate.dialect.FirebirdDialect"
}
}
}

Quando fiz RUN obtive alguns erros:

| Error 2012-12-04 00:15:13,095 [localhost-startStop-1] ERROR context.GrailsContextLoader - Error executing bootstraps: Error creating bean with name 'transactionManagerPostProcessor': Initialization of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'transactionManager': Cannot resolve reference to bean 'sessionFactory' while setting bean property 'sessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory': Cannot resolve reference to bean 'lobHandlerDetector' while setting bean property 'lobHandler'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'lobHandlerDetector': Invocation of init method failed; nested exception is org.springframework.jdbc.support.MetaDataAccessException: Error while extracting DatabaseMetaData; nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot load JDBC driver class 'org.firebirdsql.jdbc.FBDriver'
Message: Error creating bean with name 'transactionManagerPostProcessor': Initialization of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'transactionManager': Cannot resolve reference to bean 'sessionFactory' while setting bean property 'sessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory': Cannot resolve reference to bean 'lobHandlerDetector' while setting bean property 'lobHandler'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'lobHandlerDetector': Invocation of init method failed; nested exception is org.springframework.jdbc.support.MetaDataAccessException: Error while extracting DatabaseMetaData; nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot load JDBC driver class 'org.firebirdsql.jdbc.FBDriver'
Line | Method
->> 303 | innerRun in java.util.concurrent.FutureTask$Sync
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
| 138 | run in java.util.concurrent.FutureTask
| 886 | runTask in java.util.concurrent.ThreadPoolExecutor$Worker
| 908 | run in ''
^ 680 | run . . in java.lang.Thread
Caused by BeanCreationException: Error creating bean with name 'transactionManager': Cannot resolve reference to bean 'sessionFactory' while setting bean property 'sessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory': Cannot resolve reference to bean 'lobHandlerDetector' while setting bean property 'lobHandler'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'lobHandlerDetector': Invocation of init method failed; nested exception is org.springframework.jdbc.support.MetaDataAccessException: Error while extracting DatabaseMetaData; nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot load JDBC driver class 'org.firebirdsql.jdbc.FBDriver'
->> 303 | innerRun in java.util.concurrent.FutureTask$Sync
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
| 138 | run in java.util.concurrent.FutureTask
| 886 | runTask in java.util.concurrent.ThreadPoolExecutor$Worker
| 908 | run in ''
^ 680 | run . . in java.lang.Thread
Caused by BeanCreationException: Error creating bean with name 'sessionFactory': Cannot resolve reference to bean 'lobHandlerDetector' while setting bean property 'lobHandler'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'lobHandlerDetector': Invocation of init method failed; nested exception is org.springframework.jdbc.support.MetaDataAccessException: Error while extracting DatabaseMetaData; nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot load JDBC driver class 'org.firebirdsql.jdbc.FBDriver'
->> 303 | innerRun in java.util.concurrent.FutureTask$Sync
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
| 138 | run in java.util.concurrent.FutureTask
| 886 | runTask in java.util.concurrent.ThreadPoolExecutor$Worker
| 908 | run in ''
^ 680 | run . . in java.lang.Thread
Caused by BeanCreationException: Error creating bean with name 'lobHandlerDetector': Invocation of init method failed; nested exception is org.springframework.jdbc.support.MetaDataAccessException: Error while extracting DatabaseMetaData; nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot load JDBC driver class 'org.firebirdsql.jdbc.FBDriver'
->> 303 | innerRun in java.util.concurrent.FutureTask$Sync
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
| 138 | run in java.util.concurrent.FutureTask
| 886 | runTask in java.util.concurrent.ThreadPoolExecutor$Worker
| 908 | run in ''
^ 680 | run . . in java.lang.Thread
Caused by MetaDataAccessException: Error while extracting DatabaseMetaData; nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot load JDBC driver class 'org.firebirdsql.jdbc.FBDriver'
->> 303 | innerRun in java.util.concurrent.FutureTask$Sync
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
| 138 | run in java.util.concurrent.FutureTask
| 886 | runTask in java.util.concurrent.ThreadPoolExecutor$Worker
| 908 | run in ''
^ 680 | run . . in java.lang.Thread
Caused by SQLNestedException: Cannot load JDBC driver class 'org.firebirdsql.jdbc.FBDriver'
->> 1429 | createConnectionFactory in org.apache.commons.dbcp.BasicDataSource
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
| 1371 | createDataSource in ''
| 1044 | getConnection in ''
| 303 | innerRun in java.util.concurrent.FutureTask$Sync
| 138 | run . . in java.util.concurrent.FutureTask
| 886 | runTask in java.util.concurrent.ThreadPoolExecutor$Worker
| 908 | run . . in ''
^ 680 | run in java.lang.Thread
Caused by ClassNotFoundException: org.firebirdsql.jdbc.FBDriver
->> 202 | run in java.net.URLClassLoader$1
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
| 190 | findClass in java.net.URLClassLoader
| 306 | loadClass in java.lang.ClassLoader
| 247 | loadClass in ''
| 1420 | createConnectionFactory in org.apache.commons.dbcp.BasicDataSource
| 1371 | createDataSource in ''
| 1044 | getConnection in ''
| 303 | innerRun in java.util.concurrent.FutureTask$Sync
| 138 | run . . in java.util.concurrent.FutureTask
| 886 | runTask in java.util.concurrent.ThreadPoolExecutor$Worker
| 908 | run . . in ''
^ 680 | run in java.lang.Thread

Estou usando o Spring Tool Suite e tentei resolver fazendo o seguinte:
- Baixei o conector JDBC do site do Firebird e o coloquei na pasta /lib do projeto.
- Fui no properties do projeto e adicionei também o conector.
- Adicionei o conector no Run Configurations

E o erro continuou igual!!!

Desde já agradeço pela atenção.

Obrigado!
Tags: Firebird, grails, banco de dados


0
O problema está sendo no carregamento do driver.
Já tentou ao invés de incluir esta configuração do BuildCOnfig.groovy, copiar o arquivo jar diretamente para a pasta lib do seu projeto?

No caso, da uma pesquisada na referência Maven no Jarvana: http://www.jarvana.com

Aqui no stack isto ficou claro:

ClassNotFoundException: org.firebirdsql.jdbc.FBDriver
->> 202 | run in java.net.URLClassLoader$1


1
Oi Henrique,

estou trabalhando com Fabiano e a gente já tentou colocar o conector diretamente na pasta /lib sim. Aliás a gente colocou isso no final da mensagem:

-------
Estou usando o Spring Tool Suite e tentei resolver fazendo o seguinte:
- Baixei o conector JDBC do site do Firebird e o coloquei na pasta /lib do projeto.
- Fui no properties do projeto e adicionei também o conector.
- Adicionei o conector no Run Configurations
--------

A versão do Grails que estamos usando é a 2.1.1


0
Oi Eduardo, verdade, sou muito distraído, foi mal.

Bom: eu encontrei um problema similar a este seu aqui no Grails Brasil.
Da uma olhada neste link: http://www.grailsbrasil.com.br/post/show/1641


0
Meu blog abandonado (por enquanto) mas tem lá também IbotiramaTech

06/12/2012 17:27


0
Opa pessoal muito obrigado mesmo!

o problema foi resolvido mas não foi copiando esse mini-j2ee.jar no lib, aliás, a nova versão de firebird trocou essa biblioteca por outra.

Aconteceu que a gente estava usando o conector para JDK 7, porém o resto era JDK 6, então baixamos do site de firebird o conector para JDK 6 e o driver começou a funcionar!. Depois percebemos que a url estava errada, corrigimos e agora temos um problema de incompatibilidade porque o banco de dados foi gerado em interbase, hehe, uma dor de cabeça!.

Mas valeu gente! chegamos na solução com sua ajuda ;)



Ainda não faz parte da comunidade???

Para se registrar, clique aqui.


Aprenda Groovy e Grails com a Formação itexto!

Newsletter Semana Groovy

Assinar

Envie seu link!


Livro de Grails


/dev/All

Os melhores blogs de TI (e em português) em um único lugar!

 
Creative Commons
RSS Grails Brasil é mantido por itexto Consultoria.
Em caso de problemas contacte Henrique Lobo Weissmann (Kico) por e-mail: kico@itexto.com.br
Todo o conteúdo presente neste site adota o Creative Commons como licença padrão.
Ver: 4.14.0
itexto