我已经通过在我的系统中安装MySql并将其驱动程序放在 X / lib 目录(其中X是我的应用程序名称)中,为Grails中的MySql数据库配置了。我已将DataSource.groovy
更改为与更改冲突。但是,当我使用命令grails run-app
运行我的应用程序时,我收到错误
ERROR spring.BeanBuilder - WARNING: Your cache provider is set to 'com.opensymphony.oscache.hibernate.OSCacheProvider' in DataSource.groovy, however the class for this provider cannot be found.
Grails开始使用其内置的数据库..
如何摆脱这个错误?
DataSource.groovy
代码是:
dataSource {
pooled = true
driverClassName = "com.mysql.jdbc.Driver"
username = "grails"
password = "server"
}
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 {
// one of 'create', 'create-drop','update'
dbCreate = "create-drop"
url = "jdbc:mysql://localhost:3306/racetrack_dev?autoreconnect=true"
}
}
test {
dataSource {
dbCreate = "update"
url = "jdbc:mysql://localhost:3306/racetrack_dev?autoreconnect=true"
}
}
production {
dataSource {
dbCreate = "update"
url = "jdbc:mysql://localhost:3306/racetrack_dev?autoreconnect=true"
}
}
}
提前致谢。
答案 0 :(得分:1)
您使用什么版本的Grails来创建DataSource.groovy文件?
Grails 1.3.7将hibernate块作为:
hibernate {
cache.use_second_level_cache = true
cache.use_query_cache = true
cache.provider_class = 'net.sf.ehcache.hibernate.EhCacheProvider'
}
我认为可以解释您的错误消息? (因为您已将其设置为使用旧的OSCacheProvider
修改强> 的
这些是我刚试过的步骤,它们都按预期工作:
建立一个新数据库(我称之为ants
)
创建grails app
grails create-app ants
cd ants
编辑grails-app/conf/BuildConfig.groovy
文件,取消注释以下行:
mavenCentral()
和
runtime 'mysql:mysql-connector-java:5.1.13'
编辑文件grails-app/conf/DataSource.groovy
。
将dataSource块更改为:
dataSource {
pooled = true
driverClassName = "com.mysql.jdbc.Driver"
username = ""
password = ""
}
和(在每个环境中)的网址
url = "jdbc:mysql://localhost:3306/ants?autoreconnect=true"
创建域类:
grails create-domain-class ants.Runners
运行应用
grails run-app
然后,当您检查数据库时,您将拥有runners
表
我猜你正在检查错误的数据库(你有一个dev,test和main db设置,每个环境都有一个)