Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

JPA Hibernate Persistence exception [PersistenceUnit: default] Unable to build Hibernate SessionFactory

Tags:

I've been trying to sort out a connection to my DB with JPA Hibernate and mysql, but for some reason, no matter what i try, when launching the tomcat server i get the same exception:

 org.springframework.beans.factory.BeanCreationException: Error creating     bean with name 'localContainerEntityManagerFactoryBean' defined in class path resource [core/JPAConfig.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean]: Factory method 'localContainerEntityManagerFactoryBean' threw exception; nested exception is javax.persistence.PersistenceException: [PersistenceUnit: default] Unable to build Hibernate SessionFactory 

This is my JPA config class:

@Configuration @EnableJpaRepositories("core.repository") @EnableTransactionManagement @EnableCaching public class JPAConfig {  @Value("${db.jdbcURL}") private String jdbcURL;  @Value("${db.user}") private String user;  @Value("${db.password}") private String password;  @Value("${db.generateDDL}") private Boolean generateDDL;  @SuppressWarnings("Duplicates") @Bean public DataSource dataSource() {     BasicDataSource dataSource = new BasicDataSource();     dataSource.setDriverClassName(Driver.class.getName());     dataSource.setUrl("jdbc:mysql://localhost:3306/movierentaldb");     dataSource.setUsername(System.getProperty("root"));     dataSource.setPassword(System.getProperty("mdie1767"));     dataSource.setInitialSize(2);     dataSource.setMaxActive(5);     return dataSource; }  @Bean public LocalContainerEntityManagerFactoryBean localContainerEntityManagerFactoryBean(){     HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();     vendorAdapter.setDatabase(Database.MYSQL);     vendorAdapter.setGenerateDdl(generateDDL);     vendorAdapter.setShowSql(true);      LocalContainerEntityManagerFactoryBean factory = new LocalContainerEntityManagerFactoryBean();      factory.setJpaVendorAdapter(vendorAdapter);      factory.setPackagesToScan("core.model");      factory.setDataSource(dataSource());      factory.afterPropertiesSet();     return factory; }  @Bean public EntityManagerFactory entityManagerFactory(){     return localContainerEntityManagerFactoryBean().getObject(); }    @Bean public EntityManager entityManager(){     return entityManagerFactory().createEntityManager(); }  @Bean PlatformTransactionManager transactionManager(){     JpaTransactionManager manager = new JpaTransactionManager();     manager.setEntityManagerFactory(entityManagerFactory());     return manager; }  @Bean public HibernateExceptionTranslator hibernateExceptionTranslator(){     return  new HibernateExceptionTranslator(); }  @Bean public CacheManager cacheManager(){     GuavaCacheManager guavaCacheManager = new GuavaCacheManager();     guavaCacheManager.setCacheBuilder(CacheBuilder.newBuilder().expireAfterAccess(2, TimeUnit.HOURS));     return guavaCacheManager; } 

}

At this point i can't think of anything else to try..any help is much obliged

Edit: This is the entire stacktrace

23-May-2016 13:05:10.267 INFO [RMI TCP Connection(3)-127.0.0.1] org.apache.catalina.core.ApplicationContext.log No Spring WebApplicationInitializer types detected on classpath 23-May-2016 13:05:10.444 INFO [RMI TCP Connection(3)-127.0.0.1] org.apache.catalina.core.ApplicationContext.log Initializing Spring root WebApplicationContext 23-May-2016 13:05:15.333 SEVERE [RMI TCP Connection(3)-127.0.0.1] org.apache.catalina.core.StandardContext.listenerStart 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 'localContainerEntityManagerFactoryBean' defined in class path resource [core/JPAConfig.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean]: Factory method 'localContainerEntityManagerFactoryBean' threw exception; nested exception is javax.persistence.PersistenceException: [PersistenceUnit: default] Unable to build Hibernate SessionFactory     at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:599)     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1123)     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1018)     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:510)     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)     at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)     at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)     at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)     at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)     at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1054)     at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:829)     at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:538)     at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:444)     at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:326)     at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:107)     at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4732)     at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5194)     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:152)     at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:726)     at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:702)     at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:734)     at org.apache.catalina.startup.HostConfig.manageApp(HostConfig.java:1702)     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)     at java.lang.reflect.Method.invoke(Method.java:483)     at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:300)     at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)     at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)     at org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:482)     at org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:431)     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)     at java.lang.reflect.Method.invoke(Method.java:483)     at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:300)     at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)     at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)     at javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1466)     at javax.management.remote.rmi.RMIConnectionImpl.access$300(RMIConnectionImpl.java:76)     at javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1307)     at javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1399)     at javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:828)     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)     at java.lang.reflect.Method.invoke(Method.java:483)     at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:323)     at sun.rmi.transport.Transport$1.run(Transport.java:200)     at sun.rmi.transport.Transport$1.run(Transport.java:197)     at java.security.AccessController.doPrivileged(Native Method)     at sun.rmi.transport.Transport.serviceCall(Transport.java:196)     at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:568)     at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:826)     at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$240(TCPTransport.java:683)     at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler$$Lambda$1/108265094.run(Unknown Source)     at java.security.AccessController.doPrivileged(Native Method)     at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:682)     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)     at java.lang.Thread.run(Thread.java:745) Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean]: Factory method 'localContainerEntityManagerFactoryBean' threw exception; nested exception is javax.persistence.PersistenceException: [PersistenceUnit: default] Unable to build Hibernate SessionFactory     at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:189)     at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:588)     ... 60 more Caused by: javax.persistence.PersistenceException: [PersistenceUnit: default] Unable to build Hibernate SessionFactory     at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.persistenceException(EntityManagerFactoryBuilderImpl.java:954)     at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:884)     at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:60)     at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:343)     at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:319)     at core.JPAConfig.localContainerEntityManagerFactoryBean(JPAConfig.java:94)     at core.JPAConfig$$EnhancerBySpringCGLIB$$c2bcf261.CGLIB$localContainerEntityManagerFactoryBean$1(<generated>)     at core.JPAConfig$$EnhancerBySpringCGLIB$$c2bcf261$$FastClassBySpringCGLIB$$901863a2.invoke(<generated>)     at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228)     at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:355)     at core.JPAConfig$$EnhancerBySpringCGLIB$$c2bcf261.localContainerEntityManagerFactoryBean(<generated>)     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)     at java.lang.reflect.Method.invoke(Method.java:483)     at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:162)     ... 61 more Caused by: org.hibernate.tool.schema.spi.SchemaManagementException: Unable to obtain JDBC Connection     at org.hibernate.tool.schema.internal.exec.AbstractJdbcConnectionContextImpl.getConnection(AbstractJdbcConnectionContextImpl.java:46)     at org.hibernate.tool.schema.internal.exec.ImprovedExtractionContextImpl.getJdbcConnection(ImprovedExtractionContextImpl.java:59)     at org.hibernate.tool.schema.internal.exec.ImprovedExtractionContextImpl.getJdbcDatabaseMetaData(ImprovedExtractionContextImpl.java:66)     at org.hibernate.tool.schema.extract.internal.InformationExtractorJdbcDatabaseMetaDataImpl.getTable(InformationExtractorJdbcDatabaseMetaDataImpl.java:271)     at org.hibernate.tool.schema.internal.exec.ImprovedDatabaseInformationImpl.getTableInformation(ImprovedDatabaseInformationImpl.java:109)     at org.hibernate.tool.schema.internal.SchemaMigratorImpl.performMigration(SchemaMigratorImpl.java:252)     at org.hibernate.tool.schema.internal.SchemaMigratorImpl.doMigration(SchemaMigratorImpl.java:137)     at org.hibernate.tool.schema.internal.SchemaMigratorImpl.doMigration(SchemaMigratorImpl.java:110)     at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.performDatabaseAction(SchemaManagementToolCoordinator.java:176)     at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.process(SchemaManagementToolCoordinator.java:64)     at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:458)     at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:465)     at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:881)     ... 75 more Caused by: org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Access denied for user ''@'localhost' (using password: NO))     at org.apache.commons.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1549)     at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1388)     at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)     at org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.getConnection(DatasourceConnectionProviderImpl.java:122)     at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator$ConnectionProviderJdbcConnectionAccess.obtainConnection(JdbcEnvironmentInitiator.java:180)     at org.hibernate.tool.schema.internal.exec.AbstractJdbcConnectionContextImpl.getConnection(AbstractJdbcConnectionContextImpl.java:43)     ... 87 more Caused by: java.sql.SQLException: Access denied for user ''@'localhost' (using password: NO)     at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:695)     at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:663)     at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:653)     at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:108)     at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:1683)     at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:656)     at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:349)     at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:221)     at org.apache.commons.dbcp.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:38)     at org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:582)     at org.apache.commons.dbcp.BasicDataSource.validateConnectionFactory(BasicDataSource.java:1556)     at org.apache.commons.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1545)     ... 92 more  23-May-2016 13:05:15.379 INFO [RMI TCP Connection(3)-127.0.0.1] org.apache.catalina.core.ApplicationContext.log Closing Spring root WebApplicationContext Error:(7, 24) java: package org.gjt.mm.mysql does not exist 
like image 959
Joe Blow Avatar asked May 23 '16 10:05

Joe Blow


1 Answers

The issue is that you are not able to get a connection to MYSQL database and hence it is throwing an error saying that cannot build a session factory.

Please see the error below:

 Caused by: java.sql.SQLException: Access denied for user ''@'localhost' (using password: NO)  

which points to username not getting populated.

Please recheck system properties

dataSource.setUsername(System.getProperty("root")); 

some packages seems to be missing as well pointing to a dependency issue:

package org.gjt.mm.mysql does not exist 

Please run a mvn dependency:tree command to check for dependencies

like image 85
shankarsh15 Avatar answered Oct 27 '22 09:10

shankarsh15