我正在构建一个将连接到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
有什么想法吗?谢谢!
答案 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一次并缓存并重新使用它。