2014-12-06 47 views
0

我想從我的Grails應用中刪除H2。在我BuildConfig.groovyGrails引發H2 WebServlet加載錯誤

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自帶web servlet?!? 這裏發生了什麼,我能做些什麼來解決它?

回答

2

是的,H2有一個很好的基於Web的JDBC控制檯,可與任何JDBC驅動程序配合使用,並且在開發環境中默認配置它。它可以在任何環境下啓用或禁用。它在文檔here中有描述。如果不使用這一點,你要排除的jar計劃,您可以通過添加

grails.dbconsole.enabled = false 

Config.groovy禁用它適用於所有環境 - 只要確保它的頂級性能,而不是在一個environments塊。

雖然這是一個非常方便的功能,尤其是因爲它使您可以訪問默認情況下在首次創建項目時使用的內存數據庫。但即使您轉移到「真實」數據庫,它仍然是訪問數據庫的絕佳工具。除非jar引起衝突,否則我會刪除排除,因爲jar只有〜1.6MB。