2015-02-07 107 views
0

是否有某种类型的默认休眠日志配置与tomee自带?使用hibernate从独立应用程序访问mysql表时,我没有收到任何错误。但是,当我将相同的代码移植到在tomee中运行的Web应用程序中时,下面会出现错误。它似乎是由某些配置使用hsqldb进行hibernate日志记录引起的。但是我从来没有在hibernate或tomee中做过这样的配置。Tomee - 休眠记录器配置

Feb 7, 2015 8:40:38 AM org.hibernate.Version logVersion 
INFO: HHH000412: Hibernate Core {4.3.8.Final} 
Feb 7, 2015 8:40:38 AM org.hibernate.cfg.Environment <clinit> 
INFO: HHH000206: hibernate.properties not found 
Feb 7, 2015 8:40:39 AM org.hibernate.cfg.Environment buildBytecodeProvider 
INFO: HHH000021: Bytecode provider name : javassist 
Feb 7, 2015 8:40:39 AM org.hibernate.annotations.common.reflection.java.JavaReflectionManager <clinit> 
INFO: HCANN000001: Hibernate Commons Annotations {4.0.5.Final} 
Feb 7, 2015 8:40:40 AM org.hsqldb.persist.Logger logSevereEvent 
SEVERE: could not reopen database 
org.hsqldb.HsqlException: Database lock acquisition failure: lockFile: [email protected][file =C:\Program Files (x86)\eclipse\data\hsqldb\hsqldb.lck, exists=false, locked=false, valid=false, ] method: openRAF reason: java.io.FileNotFoundException: C:\Program Files (x86)\eclipse\data\hsqldb\hsqldb.lck (Access is denied) 
at org.hsqldb.error.Error.error(Unknown Source) 
at org.hsqldb.error.Error.error(Unknown Source) 
at org.hsqldb.persist.LockFile.newLockFileLock(Unknown Source) 
at org.hsqldb.persist.Logger.acquireLock(Unknown Source) 
at org.hsqldb.persist.Logger.open(Unknown Source) 
at org.hsqldb.Database.reopen(Unknown Source) 
at org.hsqldb.Database.open(Unknown Source) 
at org.hsqldb.DatabaseManager.getDatabase(Unknown Source) 
at org.hsqldb.DatabaseManager.newSession(Unknown Source) 
at org.hsqldb.jdbc.JDBCConnection.<init>(Unknown Source) 
at org.hsqldb.jdbc.JDBCDriver.getConnection(Unknown Source) 
at org.hsqldb.jdbc.JDBCDriver.connect(Unknown Source) 
at org.apache.tomcat.jdbc.pool.PooledConnection.connectUsingDriver(PooledConnection.java:278) 
at org.apache.tomcat.jdbc.pool.PooledConnection.connect(PooledConnection.java:182) 
at org.apache.tomcat.jdbc.pool.ConnectionPool.createConnection(ConnectionPool.java:701) 
at org.apache.tomcat.jdbc.pool.ConnectionPool.borrowConnection(ConnectionPool.java:635) 
at org.apache.tomcat.jdbc.pool.ConnectionPool.getConnection(ConnectionPool.java:188) 
at org.apache.tomcat.jdbc.pool.DataSourceProxy.getConnection(DataSourceProxy.java:128) 
at org.apache.tomcat.jdbc.pool.DataSourceProxy.getConnection(DataSourceProxy.java:86) 
at org.apache.openejb.resource.jdbc.managed.local.ManagedDataSource.getConnection(ManagedDataSource.java:56) 
at org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.getConnection(DatasourceConnectionProviderImpl.java:139) 
at org.hibernate.engine.jdbc.internal.JdbcServicesImpl$ConnectionProviderJdbcConnectionAccess.obtainConnection(JdbcServicesImpl.java:279) 
at org.hibernate.engine.jdbc.internal.JdbcServicesImpl.configure(JdbcServicesImpl.java:124) 
at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:111) 
at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:234) 
at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:206) 
at org.hibernate.cfg.Configuration.buildTypeRegistrations(Configuration.java:1887) 
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1845) 
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:852) 
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:845) 
at org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl.withTccl(ClassLoaderServiceImpl.java:398) 
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:844) 
at org.hibernate.jpa.HibernatePersistenceProvider.createContainerEntityManagerFactory(HibernatePersistenceProvider.java:152) 
at org.apache.openejb.assembler.classic.EntityManagerFactoryCallable.call(EntityManagerFactoryCallable.java:55) 
at org.apache.openejb.assembler.classic.ReloadableEntityManagerFactory.createDelegate(ReloadableEntityManagerFactory.java:115) 
at org.apache.openejb.assembler.classic.ReloadableEntityManagerFactory.<init>(ReloadableEntityManagerFactory.java:101) 
at org.apache.openejb.assembler.classic.PersistenceBuilder.createEntityManagerFactory(PersistenceBuilder.java:150) 
at org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:752) 
at org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:612) 
at org.apache.tomee.catalina.TomcatWebAppBuilder.startInternal(TomcatWebAppBuilder.java:1213) 
at org.apache.tomee.catalina.TomcatWebAppBuilder.configureStart(TomcatWebAppBuilder.java:1054) 
at org.apache.tomee.catalina.GlobalListenerSupport.lifecycleEvent(GlobalListenerSupport.java:127) 
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117) 
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90) 
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5355) 
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559) 
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549) 
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source) 
at java.util.concurrent.FutureTask.run(Unknown Source) 
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
at java.lang.Thread.run(Unknown Source) 

回答

0

TomEE为您提供了默认数据源(hsqldb)。我想你使用javax.persistence属性而不是jta-data-source/non-jta-data-source标记来设置你的持久化单元中的mysql连接。