Grails“未找到数据源名称且未指定默认驱动程序”错误

时间:2013-02-05 19:51:29

标签: grails jdbc

我正在构建一个将连接到Sybase SQL Anywhere数据库的Grails应用程序,并且我收到了一个非常令人沮丧的错误:

URI: /Booklist/user/authenticate
Class: java.sql.SQLException
Message: [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified`

我正在使用的代码不起作用:

def sql = Sql.newInstance("jdbc:ianywhere://localhost:1234/dbName", "user", "password", "ianywhere.ml.jdbcodbc.jdbc3.IDriver")

我的堆栈跟踪是:

Line | Method
->>  490 | connect       in ianywhere.ml.jdbcodbc.jdbc3.IDriver
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
|    579 | getConnection in java.sql.DriverManager
|    221 | getConnection in     ''
|     16 | getBooks      in Book.groovy
|     11 | authenticate  in UserController.groovy
|    195 | doFilter      in PageFragmentCachingFilter.java
|     63 | doFilter . .  in AbstractFilter.java
|   1110 | runWorker     in java.util.concurrent.ThreadPoolExecutor
|    603 | run . . . . . in java.util.concurrent.ThreadPoolExecutor$Worker
^    722 | run           in java.lang.Thread

有什么想法吗?谢谢!

2 个答案:

答案 0 :(得分:1)

我强烈建议您遵循Grails最佳实践并在DataSource.groovy配置文件中设置数据源:http://grails.org/doc/2.2.x/guide/conf.html#dataSource而不是滚动JDBC样式代码。

答案 1 :(得分:1)

如果将jar文件放在lib目录中,它将不会自动添加到类路径中。运行grails compile --refresh-dependencies以获取Grails以查看并添加它。最好在BuildConfig.groovy中注册依赖项,但是让Ivy下载jar一次并缓存并重新使用它。