異常問題:
之前可以正常使用的項目,再次運作就報這個錯誤。最後經過檢查,發現是實體類(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.mchan[email protected] 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.mchang[email protected] 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)