我正在尝试从Grails应用中删除H2。在我的BuildConfig.groovy
:
grails.project.dependency.resolution = {
inherits("global") {
excludes 'h2'
}
...
}
在我的Datasource.groovy
文件中:
hibernate {
cache.use_second_level_cache = true
cache.use_query_cache = false
cache.region.factory_class = 'org.hibernate.cache.ehcache.EhCacheRegionFactory'
singleSession = true
}
当我执行run-app
我的应用程序在浏览器中正常运行时,但在控制台中我看到以下错误输出:
|Loading Grails 2.4.2
|Configuring classpath
.
|Environment set to development
.................................
|Packaging Grails application
....................................
|Running Grails application
Error |
2014-12-06 06:13:58,476 [localhost-startStop-1] ERROR [localhost].[/] - Servlet threw load() exception
Message: org.h2.server.web.WebServlet
Line | Method
->> 59 | findClass in org.grails.plugins.tomcat.ParentDelegatingClassLoader
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
| 425 | loadClass in java.lang.ClassLoader
| 358 | loadClass in ''
| 262 | run in java.util.concurrent.FutureTask
| 1145 | runWorker in java.util.concurrent.ThreadPoolExecutor
| 615 | run in java.util.concurrent.ThreadPoolExecutor$Worker
^ 744 | run . . . in java.lang.Thread
|Server running. Browse to http://localhost:8080/
H2附带自己的网络servlet?!? 这里发生了什么,我该怎么做才能解决它?
答案 0 :(得分:2)
是的,H2有一个很棒的基于Web的JDBC控制台,可以与任何JDBC驱动程序一起使用,并且在开发环境中默认配置它。但是,它可以针对任何环境启用或禁用。它在文档here中有所描述。如果您不打算使用它并且排除了jar,则可以通过添加
来禁用所有环境grails.dbconsole.enabled = false
到Config.groovy
- 只需确保它是顶级属性,而不是environments
块。
这是一个非常方便的功能,特别是因为它允许您访问首次创建项目时默认使用的内存数据库。但是,即使您转移到“真正的”数据库,它仍然是访问您的数据库的一个很好的实用程序。除非jar引起冲突,否则我将删除排除,因为jar只有~1.6MB。