2013-03-08 8 views
7

To jest mój pierwszy post, więc bądź delikatny! :)Nie można załadować klasy sterownika JDBC "net.sourceforge.jtds.jdbc.Driver" podczas kompilacji projektu Grails

Założyłem projekt grails (całkiem nowy w Grails) i próbuję połączyć go z bazą danych SQL 2008, dodałem jtds-1.3.0.jar do folderu lib i do mojego kompilacji ścieżki, a potem mam zmieniony mój DataSource.groovy plik do zapoznania się następująco: -

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 
     } 
    } 

Problem jest, gdy próbuję skompilować mam ogromny błąd, który brzmi jak następuje, co mi brakuje ? Mam google, ale nie mogę znaleźć oczywistego rozwiązania ...: 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' 

Odpowiedz

15

Miałem podobne problemy w przeszłości.

Zmieniłem wersję JTDS na 1.2.6 i wszystko działa poprawnie.

Przy okazji - nie trzeba ręcznie dodawać słoika. Po prostu trzeba dodać następujące swojej BuildConfig.groovy (w sekcji zależności):

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

+1 Rzecz jest, aby pamiętać, że jTDS 1.3.0 wymaga Java 7, nie będzie ładować, jeśli używasz Java 6 –

+1

+1 Teraz kompiluje się dobrze, a korzystanie z komentarza runtime również działa na koszt! Dzięki! :) – MorkPork

+0

jTDS v1.3.1 nadal chciał załadować plik message_en_US.properties, który nie jest zawarty w pliku jar. Tylko message.properties jest. Jak tylko wróciłem do wersji 1.2.6, problem zniknął. –

Powiązane problemy