2011-02-17 60 views
0

當(DataSource.groovy中定義了(MySQL)數據源時,我的Grails應用在Tomcat中運行良好。但是當使用外部配置文件時,我從Tomcat獲取MySQL驅動程序的ClassNotFoundExceptions。也沒有特別的戰爭依賴關係。幫助Grails讀取外部數據源配置並加載適當的JDBC驅動程序

我可能錯過了一些明顯的東西,但似乎無法識別它。嘗試將MySQL連接器移動到CATALINA_HOME/lib,但那不行。

任何想法或幫助,非常感謝!

.... //加載外部配置
DEF extConfig = System.properties.getProperty( 「$ {APPNAME} -config.location」);
grails.config.locations = [「file:$ {extConfig}/$ {appName} -config.properties」]
//配置文件內容。
dataSource.pooled =真
dataSource.dbCreate = 「創建拖放」
dataSource.driverClassName = 「com.mysql.jdbc.Driver」
dataSource.username = 「根」
dataSource.password =「ttech 「
dataSource.url =」 JDBC:MySQL的://本地主機:3306 /註冊」

回答

1

在我們的項目,我們有一個外部屬性文件,用於配置和我們使用它來設置數據源配置爲好,在我們的例子中我們使用PostgresSQL,並且我們使用BuildConfig.groovy來包含驅動程序的jar文件,當WAR生成時,Grails依賴管理系統將該jar放入WEB-INF/lib中,並且對我們來說工作得很好,不需要放入Tomcat lib文件夾。

在您的設置中,我看到您沒有爲數據源指定方言,您可能還想在外部文件中檢查該方言。

希望這會有所幫助!

+0

是的,這確實有效。但是,如果JDBC jar在共享容器類路徑中,那麼Grails是否也應該接受它?我應該能夠使我的應用程序數據庫不可知的權利? – Bill 2011-02-21 17:30:19

相關問題