我已将我的grails应用程序从1.3.9升级到2.2.3然后升级到2.3.3。我阅读了1.3.9-> 2.2.3的发布和升级说明,然后阅读了2.2.3-> 2.3.3
我正在使用OpenJDK 6
,Jetty 6
和插件jetty 1.1
,MySQL 5.5
,我在lib
下有连接器库
现在我的问题是,如果我运行grails clean
然后grails run-app
应用程序运行没有任何问题,但如果我停止并再次运行grails run-app
我会收到一个巨大的错误(请参阅此处: http://pastebin.com/36MpXhir)
我还发现在BuildConfig.groovy
中更改某个空格(任何使其重新编译的空间)都会使应用程序正常运行。
看看堆栈跟踪,让我困惑的第一件事是
[02.12.13 16:13:59.919] [main] pool.ConnectionPool Unable to create initial connections of pool.
java.sql.SQLException: com.mysql.jdbc.Driver
at org.apache.tomcat.jdbc.pool.PooledConnection.connectUsingDriver(PooledConnection.java:254)
at org.apache.tomcat.jdbc.pool.PooledConnection.connect(PooledConnection.java:182)
at org.apache.tomcat.jdbc.pool.ConnectionPool.createConnection(ConnectionPool.java:701)
at org.apache.tomcat.jdbc.pool.ConnectionPool.borrowConnection(ConnectionPool.java:635)
at org.apache.tomcat.jdbc.pool.ConnectionPool.init(ConnectionPool.java:486)
at org.apache.tomcat.jdbc.pool.ConnectionPool.<init>(ConnectionPool.java:144)
at org.apache.tomcat.jdbc.pool.DataSourceProxy.pCreatePool(DataSourceProxy.java:116)
at org.apache.tomcat.jdbc.pool.DataSourceProxy.createPool(DataSourceProxy.java:103)
at org.apache.tomcat.jdbc.pool.DataSourceProxy.getConnection(DataSourceProxy.java:127)
at org.springframework.jdbc.datasource.LazyConnectionDataSourceProxy.afterPropertiesSet(LazyConnectionDataSourceProxy.java:162)
即使我正在使用jetty(并从org.apache.tomcat
删除了tomcat),也会引用BuildConfig.groovy
。
有没有其他人遇到过这样的问题?
答案 0 :(得分:9)
如果jar文件在公共Maven仓库中可用,请不要将它们放在lib目录中。最好一次下载jar并将它们保存在本地缓存中,并根据需要重用它们。
MySQL驱动程序在生成的BuildConfig.groovy
中用作已注释掉的示例 - 只需取消注释:)您可能希望将版本提升到最新版本,例如
dependencies {
runtime 'mysql:mysql-connector-java:5.1.27'
}
这是查找Maven工件的好网站:http://mvnrepository.com/artifact/mysql/mysql-connector-java
如果你有一个不在Maven仓库中的jar(例如你公司有共享代码的jar),那么你可以将它放在lib目录中,但它不是自动发现的。运行grails compile --refresh-dependencies
将其添加到类路径中。
答案 1 :(得分:-1)
For me same error has occurred while running the Grails Application.Then I debug and view the code history of my code which was committed recently.
From that I found the issue that was:
Inside the controller file I send the instance with-out properly
Eg:
**def list=[personInstance.]---> error occurred.**
**render list as JSON**
Then I correct my mistake-->clean the app --> run the app
Now its working fine.