2013-03-08 12 views
7

Questo è il mio primo post quindi sii gentile! :)Impossibile caricare la classe di driver JDBC 'net.sourceforge.jtds.jdbc.Driver' durante la compilazione del progetto Grails

Ho impostato un progetto Grails (abbastanza nuovo anche per i grails) e sto tentando di collegarlo a un database SQL 2008, ho aggiunto il file jtds-1.3.0.jar alla cartella lib e al mio percorso di generazione, e allora ho alterato il mio file DataSource.groovy come segue: -

dataSource { 
    pooled = true 
    driverClassName = "net.sourceforge.jtds.jdbc.Driver" 
    dialect = "org.hibernate.dialect.SQLServerDialect" 
    } 

hibernate { 
    cache.use_second_level_cache = true 
    cache.use_query_cache = false 
    cache.region.factory_class = 'net.sf.ehcache.hibernate.EhCacheRegionFactory' 
} 


// environment specific settings 
    development { 
     dataSource { 
      dbCreate = "update" 
     url= "jdbc:jtds:sqlserver://TestServer:1433;databaseName=TestTable" 
      username = "test" 
      password = "test" 
     // logSql=true 
     } 
    } 

il problema è quando provo a compilare ottengo un errore enorme che recita, quello che mi manca ? Ho cercato su google ma non riesco a trovare una soluzione ovvia ...: S

| Error 2013-03-08 12:44:33,451 [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 'net.sourceforge.jtds.jdbc.Driver' 
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 'net.sourceforge.jtds.jdbc.Driver' 

risposta

15

Ho avuto problemi simili in passato.

Ho cambiato la versione di JTDS in 1.2.6 e tutto funziona correttamente.

A proposito: non è necessario aggiungere il vaso manualmente. Non vi resta che aggiungere il seguente al vostro BuildConfig.groovy (nella sezione dipendenze):

runtime 'net.sourceforge.jtds:jtds:1.2.6' 
+5

+1 La cosa da notare è che jTDS 1.3.0 richiede Java 7, esso non verrà caricato se si sta utilizzando Java 6 –

+1

+1 Ora compila bene, e usare il commento di runtime funziona anche bene! Grazie! :) – MorkPork

+0

jTDS v1.3.1 continuava a voler caricare un file message_en_US.properties, che non è incluso nel file jar. È solo message.properties. Non appena sono tornato alla 1.2.6, questo problema è scomparso. –