获取' java.sql.SQLException:com.mysql.jdbc.Driver'使用grails run-app(当BuildConfig.groovy不需要重新编译时)

时间:2013-12-02 17:10:57

标签: mysql grails jetty

我已将我的grails应用程序从1.3.9升级到2.2.3然后升级到2.3.3。我阅读了1.3.9-> 2.2.3的发布和升级说明,然后阅读了2.2.3-> 2.3.3

我正在使用OpenJDK 6Jetty 6和插件jetty 1.1MySQL 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

有没有其他人遇到过这样的问题?

2 个答案:

答案 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.