2009-10-06 54 views
23

有沒有人得到Grails與Postgres合作?我已經使用這個tutorial,一切似乎都有道理,對我來說是正確的。然而,當我「Grails的運行程序」我得到這個錯誤與Grails一起使用Postgres

Cannot create JDBC driver of class 'org.postgresql.Driver' for connect URL 'jdbc:postgres://10.0.0.21/tribes' 
java.sql.SQLException: No suitable driver 

我的數據源文件是

dataSource { 
    pooled = true 
    driverClassName = "org.postgresql.Driver" 
    dialect = org.hibernate.dialect.PostgreSQLDialect 
} 
hibernate { 
    cache.use_second_level_cache=true 
    cache.use_query_cache=true 
    cache.provider_class='com.opensymphony.oscache.hibernate.OSCacheProvider' 
} 
// environment specific settings 
environments { 
    development { 
     dataSource { 
      dbCreate = "update" 
      url = "jdbc:postgres://10.0.0.21:5432/tribes" 
      username = "grails" 
      password = "grails" 
     } 
    } 
    test { 
     dataSource { 
      dbCreate = "update" 
      url = "jdbc:postgres://10.0.0.21:5432/tribes" 
      username = "grails" 
      password = "grails" 
     } 
    } 
    production { 
     dataSource { 
      dbCreate = "update" 
      url = "jdbc:postgres://10.0.0.21:5432/tribes" 
      username = "grails" 
      password = "grails" 
     } 
    } 
} 
+0

是。我已經嘗試了幾個版本,但很確定我有正確的一個 – 2009-10-06 20:49:30

回答

22

FAQ:「[如果]你,說「沒有合適的驅動程序運行時錯誤發現',很可能是傳遞給DriverManager.getConnection的URL格式不正確或以其他方式錯誤「。那麼你的怎麼了?那麼,在教程中的例子是這樣的:

jdbc:postgresql://localhost:5432/grails 

此致看起來是這樣的:

jdbc:postgres://10.0.0.21:5432/tribes 

我猜這些失蹤兩個字母是造成你的麻煩。

19

在BuildConfig.groovy文件取消對外部的Maven倉庫然後加入這一行

運行 '的PostgreSQL:PostgreSQL的:9.0-801.jdbc4'依賴部分

+1

這條線對於讓Grails與Postgresql交談至關重要。但是如果您已經將Postgresql JDBC jar複製到您的項目/ lib目錄中,則不需要取消註釋任何外部Maven倉庫。此外,在執行grails run-app之前,您需要創建在JDBC URL中引用的數據庫。 – 2012-05-20 05:23:07

+0

由於答案已經過了一段時間,並且postgresql驅動程序的版本已升級,所以更新了它。目前的驅動程序(截至2014年1月)爲: 'runtime'org.postgresql:postgresql:9.3-1100-jdbc4'' 這是用於JDK 1.6的。如果您仍在運行JDK 1.5,則需要將最後一個'jdbc4'更改爲'jdbc3'。有關更多信息,請參閱http://jdbc.postgresql.org/download.html – hkong 2014-01-06 19:40:13

相關問題