异常问题:
之前可以正常使用的项目,再次运行就报这个错误。最后经过检查,发现是实体类(BI_User)和实体类(User)重复了,这两个实体类都映射 数据库中同一个表。 BI_User为其他项目实体类,不小心创建到该项目中,系统部署运行时便会抛出异常:
Caused by: org.hibernate.DuplicateMappingException: Same physical table name [bi_user] references several logical table names: [BI_USER], [bi_user]
最后删掉多余的BI_User实体类正常运行
严重: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener
org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘entityManagerFactory’ defined in class path resource [resource/spring/applicationContext.xml]: Invocation of init method failed; nested exception is javax.persistence.PersistenceException: [PersistenceUnit: default] Unable to build Hibernate SessionFactory
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1482)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:521)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:458)
at org.springframework.beans.factory.support.AbstractBeanFactory
1.getObject(AbstractBeanFactory.java:295)atorg.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)atorg.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)atorg.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)atorg.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1117)atorg.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:922)atorg.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)atorg.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:389)atorg.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:294)atorg.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:112)atorg.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:5017)atorg.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5531)atorg.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)atorg.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)atorg.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)atorg.apache.catalina.core.StandardHost.addChild(StandardHost.java:652)atorg.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1263)atorg.apache.catalina.startup.HostConfig
DeployDirectory.run(HostConfig.java:1948)
at java.util.concurrent.Executors
RunnableAdapter.call(Executors.java:471)atjava.util.concurrent.FutureTask.run(FutureTask.java:262)atjava.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)atjava.util.concurrent.ThreadPoolExecutor
Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Caused by: javax.persistence.PersistenceException: [PersistenceUnit: default] Unable to build Hibernate SessionFactory
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.persistenceException(EntityManagerFactoryBuilderImpl.java:1249)
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.access
600(EntityManagerFactoryBuilderImpl.java:120)atorg.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl
4.perform(EntityManagerFactoryBuilderImpl.java:860)
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl
4.perform(EntityManagerFactoryBuilderImpl.java:850)atorg.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl.withTccl(ClassLoaderServiceImpl.java:425)atorg.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:849)atorg.hibernate.jpa.HibernatePersistenceProvider.createContainerEntityManagerFactory(HibernatePersistenceProvider.java:152)atorg.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java:67)atorg.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:288)atorg.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:310)atorg.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1541)atorg.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1479)…25moreCausedby:org.hibernate.DuplicateMappingException:Samephysicaltablename[biuser]referencesseverallogicaltablenames:[BIUSER],[biuser]atorg.hibernate.cfg.Configuration
MappingsImpl.addTableBinding(Configuration.java:3172)
at org.hibernate.cfg.annotations.TableBinder.buildAndFillTable(TableBinder.java:321)
at org.hibernate.cfg.annotations.TableBinder.buildAndFillTable(TableBinder.java:339)
at org.hibernate.cfg.annotations.EntityBinder.bindTable(EntityBinder.java:594)
at org.hibernate.cfg.AnnotationBinder.bindClass(AnnotationBinder.java:677)
at org.hibernate.cfg.Configuration
MetadataSourceQueue.processAnnotatedClassesQueue(Configuration.java:3845)atorg.hibernate.cfg.Configuration
MetadataSourceQueue.processMetadata(Configuration.java:3799)
at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1412)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1846)
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:857)
… 34 more
四月 14, 2016 2:49:33 下午 org.apache.catalina.core.ApplicationContext log
信息: Set web app root system property: ‘webapp.root’ = [E:\work_app\apache-tomcat-7.0.63\webapps\worklogo_sys]
四月 14, 2016 2:49:33 下午 org.apache.catalina.core.ApplicationContext log
信息: Initializing log4j from [classpath:resource/config/log4j.properties]
2016/04/14 14:49:33 DEBUG [com.mchange.v2.c3p0.impl.NewPooledConnection] - com.mchange.v2.c3p0.impl.NewPooledConnection@ebdbbb0 closed by a client.
java.lang.Exception: DEBUG – CLOSE BY CLIENT STACK TRACE
at com.mchange.v2.c3p0.impl.NewPooledConnection.close(NewPooledConnection.java:646)
at com.mchange.v2.c3p0.impl.NewPooledConnection.closeMaybeCheckedOut(NewPooledConnection.java:259)
at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool
1PooledConnectionResourcePoolManager.destroyResource(C3P0PooledConnectionPool.java:619)atcom.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1115)atcom.mchange.v2.resourcepool.BasicResourcePool.doAcquireAndDecrementPendingAcquiresWithinLockOnSuccess(BasicResourcePool.java:1073)atcom.mchange.v2.resourcepool.BasicResourcePool.access
800(BasicResourcePool.java:44)
at com.mchange.v2.resourcepool.BasicResourcePool
ScatteredAcquireTask.run(BasicResourcePool.java:1810)atcom.mchange.v2.async.ThreadPoolAsynchronousRunner
PoolThread.run(ThreadPoolAsynchronousRunner.java:648)
2016/04/14 14:49:33 DEBUG [com.mchange.v2.c3p0.impl.NewPooledConnection] - com.mchange.v2.c3p0.impl.NewPooledConnection@53fe4e6b closed by a client.
java.lang.Exception: DEBUG – CLOSE BY CLIENT STACK TRACE
at com.mchange.v2.c3p0.impl.NewPooledConnection.close(NewPooledConnection.java:646)
at com.mchange.v2.c3p0.impl.NewPooledConnection.closeMaybeCheckedOut(NewPooledConnection.java:259)
at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool
1PooledConnectionResourcePoolManager.destroyResource(C3P0PooledConnectionPool.java:619)atcom.mchange.v2.resourcepool.BasicResourcePool
1DestroyResourceTask.run(BasicResourcePool.java:1024)
at com.mchange.v2.resourcepool.BasicResourcePool.destroyResource(BasicResourcePool.java:1049)
at com.mchange.v2.resourcepool.BasicResourcePool.destroyResource(BasicResourcePool.java:1010)
at com.mchange.v2.resourcepool.BasicResourcePool.access
100(BasicResourcePool.java:44)atcom.mchange.v2.resourcepool.BasicResourcePool
5.run(BasicResourcePool.java:1260)
四月 14, 2016 2:49:33 下午 org.apache.catalina.core.StandardContext startInternal
严重: One or more listeners failed to start. Full details will be found in the appropriate container log file
四月 14, 2016 2:49:33 下午 org.apache.catalina.core.StandardContext startInternal
严重: Context [/worklogo_sys] startup failed due to previous errors
四月 14, 2016 2:49:34 下午 org.apache.catalina.core.ApplicationContext log
信息: Shutting down log4j
四月 14, 2016 2:49:34 下午 org.apache.catalina.core.ApplicationContext log
信息: Closing Spring root WebApplicationContext
四月 14, 2016 2:49:34 下午 org.apache.catalina.loader.WebappClassLoader clearReferencesJdbc
严重: The web application [/worklogo_sys] registered the JDBC driver [oracle.jdbc.driver.OracleDriver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered.
四月 14, 2016 2:49:34 下午 org.apache.catalina.loader.WebappClassLoader clearReferencesThreads
严重: The web application [/worklogo_sys] appears to have started a thread named [Resource Destroyer in BasicResourcePool.close()] but has failed to stop it. This is very likely to create a memory leak.
四月 14, 2016 2:49:34 下午 org.apache.catalina.startup.HostConfig deployDirectory
信息: Deployment of web application directory E:\work_app\apache-tomcat-7.0.63\webapps\worklogo_sys has finished in 13,140 ms
四月 14, 2016 2:49:34 下午 org.apache.coyote.AbstractProtocol start
信息: Starting ProtocolHandler [“http-apr-80”]
四月 14, 2016 2:49:34 下午 org.apache.coyote.AbstractProtocol start
信息: Starting ProtocolHandler [“ajp-apr-8009”]
四月 14, 2016 2:49:34 下午 org.apache.catalina.startup.Catalina start
信息: Server startup in 14947 ms
四月 14, 2016 2:49:34 下午 org.apache.catalina.loader.WebappClassLoader loadClass
信息: Illegal access: this web application instance has been stopped already. Could not load oracle.xdb.XMLTypeFactory. The eventual following stack trace is caused by an error thrown for debugging purposes as well as to attempt to terminate the thread which caused the illegal access, and has no functional impact.
java.lang.IllegalStateException
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1614)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1573)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:195)
at oracle.jdbc.driver.PhysicalConnection.safelyGetClassForName(PhysicalConnection.java:4697)
at oracle.jdbc.driver.PhysicalConnection.addClassMapEntry(PhysicalConnection.java:2759)
at oracle.jdbc.driver.PhysicalConnection.addDefaultClassMapEntriesTo(PhysicalConnection.java:2748)
at oracle.jdbc.driver.PhysicalConnection.initializeClassMap(PhysicalConnection.java:2452)
at oracle.jdbc.driver.PhysicalConnection.ensureClassMapExists(PhysicalConnection.java:2445)
at oracle.jdbc.driver.PhysicalConnection.getTypeMap(PhysicalConnection.java:2732)
at com.mchange.v2.c3p0.impl.NewPooledConnection.carefulCheckTypeMap(NewPooledConnection.java:191)
at com.mchange.v2.c3p0.impl.NewPooledConnection.(NewPooledConnection.java:129)
at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:211)
at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:184)
at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool
1PooledConnectionResourcePoolManager.acquireResource(C3P0PooledConnectionPool.java:200)atcom.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1086)atcom.mchange.v2.resourcepool.BasicResourcePool.doAcquireAndDecrementPendingAcquiresWithinLockOnSuccess(BasicResourcePool.java:1073)atcom.mchange.v2.resourcepool.BasicResourcePool.access
800(BasicResourcePool.java:44)
at com.mchange.v2.resourcepool.BasicResourcePool
ScatteredAcquireTask.run(BasicResourcePool.java:1810)atcom.mchange.v2.async.ThreadPoolAsynchronousRunner
PoolThread.run(ThreadPoolAsynchronousRunner.java:648)
四月 14, 2016 2:49:34 下午 org.apache.catalina.loader.WebappClassLoader loadClass
信息: Illegal access: this web application instance has been stopped already. Could not load oracle.xdb.XMLTypeFactory. The eventual following stack trace is caused by an error thrown for debugging purposes as well as to attempt to terminate the thread which caused the illegal access, and has no functional impact.
java.lang.IllegalStateException
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1614)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1573)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:195)
at oracle.jdbc.driver.PhysicalConnection.safelyGetClassForName(PhysicalConnection.java:4697)
at oracle.jdbc.driver.PhysicalConnection.addClassMapEntry(PhysicalConnection.java:2759)
at oracle.jdbc.driver.PhysicalConnection.addDefaultClassMapEntriesTo(PhysicalConnection.java:2748)
at oracle.jdbc.driver.PhysicalConnection.initializeClassMap(PhysicalConnection.java:2452)
at oracle.jdbc.driver.PhysicalConnection.ensureClassMapExists(PhysicalConnection.java:2445)
at oracle.jdbc.driver.PhysicalConnection.getTypeMap(PhysicalConnection.java:2732)
at com.mchange.v2.c3p0.impl.NewPooledConnection.carefulCheckTypeMap(NewPooledConnection.java:191)
at com.mchange.v2.c3p0.impl.NewPooledConnection.(NewPooledConnection.java:129)
at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:211)
at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:184)
at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool
1PooledConnectionResourcePoolManager.acquireResource(C3P0PooledConnectionPool.java:200)atcom.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1086)atcom.mchange.v2.resourcepool.BasicResourcePool.doAcquireAndDecrementPendingAcquiresWithinLockOnSuccess(BasicResourcePool.java:1073)atcom.mchange.v2.resourcepool.BasicResourcePool.access
800(BasicResourcePool.java:44)
at com.mchange.v2.resourcepool.BasicResourcePool
ScatteredAcquireTask.run(BasicResourcePool.java:1810)atcom.mchange.v2.async.ThreadPoolAsynchronousRunner
PoolThread.run(ThreadPoolAsynchronousRunner.java:648)