I am trying to deploy a grails (2.2.1) application on tomcat 7.0.42. So I followed the steps in this link on the Grails website. But when I try to start the application from Tomcat Web Application Manager, I see the following error log in the tomcat console:
Error creating bean with name 'transactionManagerPostProcessor': Initialization of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'transactionManager': Cannot resolve reference to bean 'sessionFactory' while setting bean property 'sessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory': Cannot resolve reference to bean 'hibernateProperties' while setting bean property 'hibernateProperties'; nested exception is org.springframework.beans.fa ctory.BeanCreationException: Error creating bean with name 'hibernateProperties' : Cannot resolve reference to bean 'dialectDetector' while setting bean property 'properties' with key [hibernate.dialect]; nested exception is org.springframew ork.beans.factory.BeanCreationException: Error creating bean with name 'dialectD etector': Invocation of init method failed; nested exception is org.springframew ork.jdbc.support.MetaDataAccessException: Error while extracting DatabaseMetaDat a; nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Database may be already in use: "Locked by another p rocess". Possible solutions: close all other connection(s); use the server mode [90020-164]) org.springframework.beans.factory.BeanCreationException: Error creating bean wit h name 'transactionManagerPostProcessor': Initialization of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error crea ting bean with name 'transactionManager': Cannot resolve reference to bean 'sess ionFactory' while setting bean property 'sessionFactory'; nested exception is or g.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory': Cannot resolve reference to bean 'hibernateProperties' wh ile setting bean property 'hibernateProperties'; nested exception is org.springf ramework.beans.factory.BeanCreationException: Error creating bean with name 'hib ernateProperties': Cannot resolve reference to bean 'dialectDetector' while sett ing bean property 'properties' with key [hibernate.dialect]; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean wi th name 'dialectDetector': Invocation of init method failed; nested exception is org.springframework.jdbc.support.MetaDataAccessException: Error while extractin g DatabaseMetaData; nested exception is org.apache.commons.dbcp.SQLNestedExcepti on: Cannot create PoolableConnectionFactory (Database may be already in use: "Lo cked by another process". Possible solutions: close all other connection(s); use the server mode [90020-164]) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor. java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor .java:615) at java.lang.Thread.run(Thread.java:722) Caused by: org.springframework.beans.factory.BeanCreationException: Error creati ng bean with name 'transactionManager': Cannot resolve reference to bean 'sessio nFactory' while setting bean property 'sessionFactory'; nested exception is org. springframework.beans.factory.BeanCreationException: Error creating bean with na me 'sessionFactory': Cannot resolve reference to bean 'hibernateProperties' whil e setting bean property 'hibernateProperties'; nested exception is org.springfra mework.beans.factory.BeanCreationException: Error creating bean with name 'hiber nateProperties': Cannot resolve reference to bean 'dialectDetector' while settin g bean property 'properties' with key [hibernate.dialect]; nested exception is o rg.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dialectDetector': Invocation of init method failed; nested exception is o rg.springframework.jdbc.support.MetaDataAccessException: Error while extracting DatabaseMetaData; nested exception is org.apache.commons.dbcp.SQLNestedException : Cannot create PoolableConnectionFactory (Database may be already in use: "Lock ed by another process". Possible solutions: close all other connection(s); use t he server mode [90020-164]) ... 3 more Caused by: org.springframework.beans.factory.BeanCreationException: Error creati ng bean with name 'sessionFactory': Cannot resolve reference to bean 'hibernateP roperties' while setting bean property 'hibernateProperties'; nested exception i s org.springframework.beans.factory.BeanCreationException: Error creating bean w ith name 'hibernateProperties': Cannot resolve reference to bean 'dialectDetecto r' while setting bean property 'properties' with key [hibernate.dialect]; nested exception is org.springframework.beans.factory.BeanCreationException: Error cre ating bean with name 'dialectDetector': Invocation of init method failed; nested exception is org.springframework.jdbc.support.MetaDataAccessException: Error wh ile extracting DatabaseMetaData; nested exception is org.apache.commons.dbcp.SQL NestedException: Cannot create PoolableConnectionFactory (Database may be alread y in use: "Locked by another process". Possible solutions: close all other conne ction(s); use the server mode [90020-164]) ... 3 more Caused by: org.springframework.beans.factory.BeanCreationException: Error creati ng bean with name 'hibernateProperties': Cannot resolve reference to bean 'diale ctDetector' while setting bean property 'properties' with key [hibernate.dialect ]; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dialectDetector': Invocation of init method faile d; nested exception is org.springframework.jdbc.support.MetaDataAccessException: Error while extracting DatabaseMetaData; nested exception is org.apache.commons .dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Database may be already in use: "Locked by another process". Possible solutions: close all ot her connection(s); use the server mode [90020-164]) ... 3 more Caused by: org.springframework.beans.factory.BeanCreationException: Error creati ng bean with name 'dialectDetector': Invocation of init method failed; nested ex ception is org.springframework.jdbc.support.MetaDataAccessException: Error while extracting DatabaseMetaData; nested exception is org.apache.commons.dbcp.SQLNes tedException: Cannot create PoolableConnectionFactory (Database may be already i n use: "Locked by another process". Possible solutions: close all other connecti on(s); use the server mode [90020-164]) ... 3 more Caused by: org.springframework.jdbc.support.MetaDataAccessException: Error while extracting DatabaseMetaData; nested exception is org.apache.commons.dbcp.SQLNes tedException: Cannot create PoolableConnectionFactory (Database may be already i n use: "Locked by another process". Possible solutions: close all other connecti on(s); use the server mode [90020-164]) ... 3 more Caused by: org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableCon nectionFactory (Database may be already in use: "Locked by another process". Pos sible solutions: close all other connection(s); use the server mode [90020-164]) at org.apache.commons.dbcp.BasicDataSource.createPoolableConnectionFacto ry(BasicDataSource.java:1549) at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSou rce.java:1388) at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource .java:1044) ... 3 more Caused by: org.h2.jdbc.JdbcSQLException: Database may be already in use: "Locked by another process". Possible solutions: close all other connection(s); use the server mode [90020-164] at org.h2.message.DbException.getJdbcSQLException(DbException.java:329) at org.h2.message.DbException.get(DbException.java:169) at org.h2.message.DbException.get(DbException.java:146) at org.h2.store.FileLock.getExceptionAlreadyInUse(FileLock.java:439) at org.h2.store.FileLock.lockFile(FileLock.java:336) at org.h2.store.FileLock.lock(FileLock.java:128) at org.h2.engine.Database.open(Database.java:542) at org.h2.engine.Database.openDatabase(Database.java:222) at org.h2.engine.Database.<init>(Database.java:217) at org.h2.engine.Engine.openSession(Engine.java:56) at org.h2.engine.Engine.openSession(Engine.java:159) at org.h2.engine.Engine.createSessionAndValidate(Engine.java:138) at org.h2.engine.Engine.createSession(Engine.java:121) at org.h2.engine.Engine.createSession(Engine.java:28) at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.jav a:305) at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:110) at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:94) at org.h2.Driver.connect(Driver.java:72) at org.apache.commons.dbcp.DriverConnectionFactory.createConnection(Driv erConnectionFactory.java:38) at org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(Poolable ConnectionFactory.java:582) at org.apache.commons.dbcp.BasicDataSource.validateConnectionFactory(Bas icDataSource.java:1556) at org.apache.commons.dbcp.BasicDataSource.createPoolableConnectionFacto ry(BasicDataSource.java:1545) ... 5 more 2013-08-31 19:17:32,185 [http-apr-8081-exec-4] ERROR context.GrailsContextLoader - Error initializing Grails: Error creating bean with name 'transactionManager PostProcessor': Initialization of bean failed; nested exception is org.springfra mework.beans.factory.BeanCreationException: Error creating bean with name 'trans actionManager': Cannot resolve reference to bean 'sessionFactory' while setting bean property 'sessionFactory'; nested exception is org.springframework.beans.fa ctory.BeanCreationException: Error creating bean with name 'sessionFactory': Can not resolve reference to bean 'hibernateProperties' while setting bean property 'hibernateProperties'; nested exception is org.springframework.beans.factory.Bea nCreationException: Error creating bean with name 'hibernateProperties': Cannot resolve reference to bean 'dialectDetector' while setting bean property 'propert ies' with key [hibernate.dialect]; nested exception is org.springframework.beans .factory.BeanCreationException: Error creating bean with name 'dialectDetector': Invocation of init method failed; nested exception is org.springframework.jdbc. support.MetaDataAccessException: Error while extracting DatabaseMetaData; nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot create Poolable ConnectionFactory (Database may be already in use: "Locked by another process". Possible solutions: close all other connection(s); use the server mode [90020-16 4]) org.springframework.beans.factory.BeanCreationException: Error creating bean wit h name 'transactionManagerPostProcessor': Initialization of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error crea ting bean with name 'transactionManager': Cannot resolve reference to bean 'sess ionFactory' while setting bean property 'sessionFactory'; nested exception is or g.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory': Cannot resolve reference to bean 'hibernateProperties' wh ile setting bean property 'hibernateProperties'; nested exception is org.springf ramework.beans.factory.BeanCreationException: Error creating bean with name 'hib ernateProperties': Cannot resolve reference to bean 'dialectDetector' while sett ing bean property 'properties' with key [hibernate.dialect]; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean wi th name 'dialectDetector': Invocation of init method failed; nested exception is org.springframework.jdbc.support.MetaDataAccessException: Error while extractin g DatabaseMetaData; nested exception is org.apache.commons.dbcp.SQLNestedExcepti on: Cannot create PoolableConnectionFactory (Database may be already in use: "Lo cked by another process". Possible solutions: close all other connection(s); use the server mode [90020-164]) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor. java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor .java:615) at java.lang.Thread.run(Thread.java:722) Caused by: org.springframework.beans.factory.BeanCreationException: Error creati ng bean with name 'transactionManager': Cannot resolve reference to bean 'sessio nFactory' while setting bean property 'sessionFactory'; nested exception is org. springframework.beans.factory.BeanCreationException: Error creating bean with na me 'sessionFactory': Cannot resolve reference to bean 'hibernateProperties' whil e setting bean property 'hibernateProperties'; nested exception is org.springfra mework.beans.factory.BeanCreationException: Error creating bean with name 'hiber nateProperties': Cannot resolve reference to bean 'dialectDetector' while settin g bean property 'properties' with key [hibernate.dialect]; nested exception is o rg.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dialectDetector': Invocation of init method failed; nested exception is o rg.springframework.jdbc.support.MetaDataAccessException: Error while extracting DatabaseMetaData; nested exception is org.apache.commons.dbcp.SQLNestedException : Cannot create PoolableConnectionFactory (Database may be already in use: "Lock ed by another process". Possible solutions: close all other connection(s); use t he server mode [90020-164]) ... 3 more Caused by: org.springframework.beans.factory.BeanCreationException: Error creati ng bean with name 'sessionFactory': Cannot resolve reference to bean 'hibernateP roperties' while setting bean property 'hibernateProperties'; nested exception i s org.springframework.beans.factory.BeanCreationException: Error creating bean w ith name 'hibernateProperties': Cannot resolve reference to bean 'dialectDetecto r' while setting bean property 'properties' with key [hibernate.dialect]; nested exception is org.springframework.beans.factory.BeanCreationException: Error cre ating bean with name 'dialectDetector': Invocation of init method failed; nested exception is org.springframework.jdbc.support.MetaDataAccessException: Error wh ile extracting DatabaseMetaData; nested exception is org.apache.commons.dbcp.SQL NestedException: Cannot create PoolableConnectionFactory (Database may be alread y in use: "Locked by another process". Possible solutions: close all other conne ction(s); use the server mode [90020-164]) ... 3 more Caused by: org.springframework.beans.factory.BeanCreationException: Error creati ng bean with name 'hibernateProperties': Cannot resolve reference to bean 'diale ctDetector' while setting bean property 'properties' with key [hibernate.dialect ]; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dialectDetector': Invocation of init method faile d; nested exception is org.springframework.jdbc.support.MetaDataAccessException: Error while extracting DatabaseMetaData; nested exception is org.apache.commons .dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Database may be already in use: "Locked by another process". Possible solutions: close all ot her connection(s); use the server mode [90020-164]) ... 3 more Caused by: org.springframework.beans.factory.BeanCreationException: Error creati ng bean with name 'dialectDetector': Invocation of init method failed; nested ex ception is org.springframework.jdbc.support.MetaDataAccessException: Error while extracting DatabaseMetaData; nested exception is org.apache.commons.dbcp.SQLNes tedException: Cannot create PoolableConnectionFactory (Database may be already i n use: "Locked by another process". Possible solutions: close all other connecti on(s); use the server mode [90020-164]) ... 3 more Caused by: org.springframework.jdbc.support.MetaDataAccessException: Error while extracting DatabaseMetaData; nested exception is org.apache.commons.dbcp.SQLNes tedException: Cannot create PoolableConnectionFactory (Database may be already i n use: "Locked by another process". Possible solutions: close all other connecti on(s); use the server mode [90020-164]) ... 3 more Caused by: org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableCon nectionFactory (Database may be already in use: "Locked by another process". Pos sible solutions: close all other connection(s); use the server mode [90020-164]) at org.apache.commons.dbcp.BasicDataSource.createPoolableConnectionFacto ry(BasicDataSource.java:1549) at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSou rce.java:1388) at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource .java:1044) ... 3 more Caused by: org.h2.jdbc.JdbcSQLException: Database may be already in use: "Locked by another process". Possible solutions: close all other connection(s); use the server mode [90020-164] at org.h2.message.DbException.getJdbcSQLException(DbException.java:329) at org.h2.message.DbException.get(DbException.java:169) at org.h2.message.DbException.get(DbException.java:146) at org.h2.store.FileLock.getExceptionAlreadyInUse(FileLock.java:439) at org.h2.store.FileLock.lockFile(FileLock.java:336) at org.h2.store.FileLock.lock(FileLock.java:128) at org.h2.engine.Database.open(Database.java:542) at org.h2.engine.Database.openDatabase(Database.java:222) at org.h2.engine.Database.<init>(Database.java:217) at org.h2.engine.Engine.openSession(Engine.java:56) at org.h2.engine.Engine.openSession(Engine.java:159) at org.h2.engine.Engine.createSessionAndValidate(Engine.java:138) at org.h2.engine.Engine.createSession(Engine.java:121) at org.h2.engine.Engine.createSession(Engine.java:28) at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.jav a:305) at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:110) at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:94) at org.h2.Driver.connect(Driver.java:72) at org.apache.commons.dbcp.DriverConnectionFactory.createConnection(Driv erConnectionFactory.java:38) at org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(Poolable ConnectionFactory.java:582) at org.apache.commons.dbcp.BasicDataSource.validateConnectionFactory(Bas icDataSource.java:1556) at org.apache.commons.dbcp.BasicDataSource.createPoolableConnectionFacto ry(BasicDataSource.java:1545) ... 5 more Aug 31, 2013 7:17:32 PM org.apache.catalina.core.StandardContext startInternal SEVERE: Error listenerStart Aug 31, 2013 7:17:32 PM org.apache.catalina.core.StandardContext startInternal SEVERE: Context [/BskDPP2013ExcelImportToDatabase-0.1] startup failed due to pre vious errors Aug 31, 2013 7:17:32 PM org.apache.catalina.loader.WebappClassLoader clearRefere ncesJdbc SEVERE: The web application [/BskDPP2013ExcelImportToDatabase-0.1] registered th e JDBC driver [org.h2.Driver] but failed to unregister it when the web applicati on was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unre gistered.
An application executed using the run-app (in intellij) command works fine.
Also, if we see this line from the log: Cannot create PoolableConnectionFactory (Database may be already in use: "Locked by another process". Possible solutions: close all other connection(s); use the server mode [90020-164]) , he says the database is being used by some other process. However, this cannot be, because the database is HSQLDB, which is internal with the grails application, and no other external DBMS is used.
I would surely leave (and also accept, if this is final) any decision that solves (or at least provides direction for the solution) of the aforementioned problem.
EDIT: Here is my DataSource.groovy
dataSource { pooled = true driverClassName = "org.h2.Driver" username = "sa" password = "" } hibernate { cache.use_second_level_cache = true cache.use_query_cache = false cache.region.factory_class = 'net.sf.ehcache.hibernate.EhCacheRegionFactory' } // environment specific settings environments { development { dataSource { dbCreate = "update" // one of 'create', 'create-drop', 'update', 'validate', '' url = "jdbc:h2:mem:devDb;MVCC=TRUE;LOCK_TIMEOUT=10000" } } test { dataSource { dbCreate = "update" url = "jdbc:h2:mem:testDb;MVCC=TRUE;LOCK_TIMEOUT=10000" } } production { dataSource { dbCreate = "update" url = "jdbc:h2:file:prodDb;MVCC=TRUE;LOCK_TIMEOUT=10000" pooled = true properties { maxActive = -1 minEvictableIdleTimeMillis=1800000 timeBetweenEvictionRunsMillis=1800000 numTestsPerEvictionRun=3 testOnBorrow=true testWhileIdle=true testOnReturn=true validationQuery="SELECT 1" } } } }
source share