2013-08-31 13 views
6

tomcat 7.0.42にgrails(2.2.1)アプリケーションをデプロイしようとしています。だから私はgrailsのウェブサイトからこのlinkで与えられた手順に従った。 (IntelliJの中で)実行appコマンド経由で実行tomcatにgrailsアプリケーションをデプロイする際に、 'transactionManagerPostProcessor'という名前のBeanを作成する際にエラーが発生しました

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. 

アプリケーションは、正常に動作します:私はTomcatのWebアプリケーションマネージャからアプリケーションを起動しようとする。しかし、私は、Tomcatのコンソールに次のエラーログを参照してください。

また、ログからこの行が表示された場合: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])、それはデータベースが他のプロセスによって使用されていると表示されます。しかし、それはデータベースがgrailsアプリケーションの内部のHSQLDBであり、他の外部DBMSは使用されていないために発生することはありません。

私は確かに上記の問題を解決する(または少なくとも解決する方向を与える)解決策をupvote(そして究極の場合でも受け入れる)でしょう。

EDIT: ここには私の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" 
      } 
     } 
    } 
} 
+0

'DataSource.groovy'を表示します。 – dmahapatro

+0

@dmahapatro編集を参照してください。 – rahulserver

+0

同じ設定でTomcatに他のgrailsアプリケーションをデプロイしていますか?たとえば、メモリ内の 'prodDb'を' prodDb1'に変更してTomcatにデプロイしてみることができますか? – dmahapatro

答えて

1
url = "jdbc:h2:file:prodDb;MVCC=TRUE;LOCK_TIMEOUT=10000" 

はH2 fileデータベースを参照しています。意図がファイルデータベースを参照していない場合は、代わりにメモリprodDbを使用できますか?

url = "jdbc:h2:prodDb;MVCC=TRUE;LOCK_TIMEOUT=10000" 
+0

あなたは上記の答えにurl = "jdbc:h2:mem:prodDb; MVCC = TRUE; LOCK_TIMEOUT = 10000" ... 'mem'を参照していますか? –

1

「Grailsの戦争は」コマンドは、デフォルトではDataSource.groovyで定義されている生産環境を使用してWARファイルを生成しているため。おそらく、プロダクションDBがまだ動作していない可能性があるので、 "grails test war"を実行してTest DBで戦争を構築しようとすることができます。

関連する問題