I’m using Grails 2.0, and I’m having trouble getting the code to recognize an external library. Specifically the MySQL Driver.
Basically the trouble happens whenever I try to change my DataSource from HSQLDB to MySql. I downloaded the connector jar (5.0.8) and put it in the (project)/lib directory. I’ve verified that the com.mysql.jdbc.Driver.class file is located in the .jar.
Every time I try to run the app I get the error:
Caused by ClassNotFoundException: com.mysql.jdbc.Driver
Any help is greatly appreciated.
dataSource {
pooled = true
//driverClassName = "org.h2.Driver"
//username = "sa"
//password = ""
driverClassName = "com.mysql.jdbc.Driver"
username = "bob"
password = "password"
}
hibernate {
cache.use_second_level_cache = true
cache.use_query_cache = true
cache.region.factory_class = 'net.sf.ehcache.hibernate.EhCacheRegionFactory'
}
// environment specific settings
environments {
development {
dataSource {
//dbCreate = "create-drop" // one of 'create', 'create-drop', 'update', 'validate', ''
//url = "jdbc:h2:mem:devDb;MVCC=TRUE"
dbCreate = "update" // one of 'create', 'create-drop', 'update', 'validate', ''
url = "jdbc:mysql://localhost:3306/tekevent"
}
}
test {
dataSource {
dbCreate = "create-drop"
url = "jdbc:h2:mem:testDb;MVCC=TRUE"
}
}
production {
dataSource {
dbCreate = "update"
url = "jdbc:h2:prodDb;MVCC=TRUE"
pooled = true
properties {
maxActive = -1
minEvictableIdleTimeMillis=1800000
timeBetweenEvictionRunsMillis=1800000
numTestsPerEvictionRun=3
testOnBorrow=true
testWhileIdle=true
testOnReturn=true
validationQuery="SELECT 1"
}
}
}
}
Delete the jar and use a dependency declaration in
BuildConfig.groovyinstead. Rather than having multiple copies of many jars, it’s far better to download each once and cache them in your Ivy cache and reference them from there.BuildConfig.groovyhas an example for MySQL already; just uncomment it and update the version if needed. Also make sure that themavenCentral()repository is uncommented: