Unsatisfied dependency expressed through field 'sessionFactory': Error creating bean with name 'sessionFactory'

35 Views Asked by At

I am trying to use SessionFactory to build queries to my Postgresql database. I created a configuration class in which the bean is named SessionFactory. Below I will give the full code of the config class, and exceptions:


import org.apache.tomcat.dbcp.dbcp2.BasicDataSource;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.env.Environment;
import org.springframework.orm.hibernate5.HibernateTransactionManager;
import org.springframework.orm.hibernate5.LocalSessionFactoryBean;
import org.springframework.transaction.PlatformTransactionManager;
import org.springframework.transaction.annotation.EnableTransactionManagement;

import javax.sql.DataSource;
import java.util.Properties;

@Configuration
@EnableTransactionManagement
public class HibernateConf {
    private Environment env;
    public HibernateConf(Environment env) {
        this.env = env;
    }
    @Bean
    public LocalSessionFactoryBean sessionFactory() {
        LocalSessionFactoryBean sessionFactory = new LocalSessionFactoryBean();
        sessionFactory.setDataSource(dataSource());
        sessionFactory.setPackagesToScan(
                new String[]{"com.baeldung.hibernate.bootstrap.model"});
        sessionFactory.setHibernateProperties(hibernateProperties());

        return sessionFactory;
    }

    @Bean
    public DataSource dataSource() {
        BasicDataSource dataSource = new BasicDataSource();
        dataSource.setDriverClassName(env.getProperty("org.postgresql.Driver"));
        dataSource.setUrl(env.getProperty("jdbc:postgresql://localhost:5432/m4BD"));
        dataSource.setUsername(env.getProperty("user"));
        dataSource.setPassword(env.getProperty("user"));

        return (DataSource) dataSource;
    }

    @Bean
    public PlatformTransactionManager hibernateTransactionManager() {
        HibernateTransactionManager transactionManager
                = new HibernateTransactionManager();
        transactionManager.setSessionFactory(sessionFactory().getObject());
        return transactionManager;
    }

    private final Properties hibernateProperties() {
        Properties hibernateProperties = new Properties();
        hibernateProperties.setProperty(
                "hibernate.hbm2ddl.auto", "update");
        hibernateProperties.setProperty(
                "hibernate.dialect", "org.hibernate.dialect.PostgreSQLDialect");

        return hibernateProperties;
    }
}


:: Spring Boot :: (v3.1.9)

2024-03-17T11:22:31.810+03:00 INFO 16984 --- [ main] c.l.m4banktask.M4BankTaskApplication : Starting M4BankTaskApplication using Java 17.0.8 with PID 16984 (J:\JAVA_projects\m4BankTask\libs\classes\java\main started by User in J:\JAVA_projects\m4BankTask) 2024-03-17T11:22:31.813+03:00 INFO 16984 --- [ main] c.l.m4banktask.M4BankTaskApplication : No active profile set, falling back to 1 default profile: "default" 2024-03-17T11:22:32.327+03:00 INFO 16984 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode. 2024-03-17T11:22:32.369+03:00 INFO 16984 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 36 ms. Found 1 JPA repository interface. 2024-03-17T11:22:32.742+03:00 INFO 16984 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8080 (http) 2024-03-17T11:22:32.750+03:00 INFO 16984 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat] 2024-03-17T11:22:32.751+03:00 INFO 16984 --- [ main] o.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/10.1.19] 2024-03-17T11:22:32.815+03:00 INFO 16984 --- [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext 2024-03-17T11:22:32.815+03:00 INFO 16984 --- [ main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 971 ms 2024-03-17T11:22:32.884+03:00 WARN 16984 --- [ main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'modelController' defined in file [J:\JAVA_projects\m4BankTask\libs\classes\java\main\com\lyuban\m4banktask\controllers\ModelController.class]: Unsatisfied dependency expressed through constructor parameter 0: Error creating bean with name 'modelServiceImpl' defined in file [J:\JAVA_projects\m4BankTask\libs\classes\java\main\com\lyuban\m4banktask\serviсes\Impl\ModelServiceImpl.class]: Unsatisfied dependency expressed through constructor parameter 0: Error creating bean with name 'myJPACriteria': Unsatisfied dependency expressed through field 'sessionFactory': Error creating bean with name 'sessionFactory' defined in class path resource [com/lyuban/m4banktask/configs/HibernateConf.class]: org/springframework/core/type/classreading/ClassFormatException 2024-03-17T11:22:32.886+03:00 INFO 16984 --- [ main] o.apache.catalina.core.StandardService : Stopping service [Tomcat] 2024-03-17T11:22:32.893+03:00 INFO 16984 --- [ main] .s.b.a.l.ConditionEvaluationReportLogger :

Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled. 2024-03-17T11:22:32.906+03:00 ERROR 16984 --- [ main] o.s.boot.SpringApplication : Application run failed

org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'modelController' defined in file [J:\JAVA_projects\m4BankTask\libs\classes\java\main\com\lyuban\m4banktask\controllers\ModelController.class]: Unsatisfied dependency expressed through constructor parameter 0: Error creating bean with name 'modelServiceImpl' defined in file [J:\JAVA_projects\m4BankTask\libs\classes\java\main\com\lyuban\m4banktask\serviсes\Impl\ModelServiceImpl.class]: Unsatisfied dependency expressed through constructor parameter 0: Error creating bean with name 'myJPACriteria': Unsatisfied dependency expressed through field 'sessionFactory': Error creating bean with name 'sessionFactory' defined in class path resource [com/lyuban/m4banktask/configs/HibernateConf.class]: org/springframework/core/type/classreading/ClassFormatException at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:797) ~[spring-beans-6.0.17.jar:6.0.17] at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:236) ~[spring-beans-6.0.17.jar:6.0.17] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1350) ~[spring-beans-6.0.17.jar:6.0.17] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1187) ~[spring-beans-6.0.17.jar:6.0.17] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:558) ~[spring-beans-6.0.17.jar:6.0.17] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:518) ~[spring-beans-6.0.17.jar:6.0.17] at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:325) ~[spring-beans-6.0.17.jar:6.0.17] at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-6.0.17.jar:6.0.17] at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:323) ~[spring-beans-6.0.17.jar:6.0.17] at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) ~[spring-beans-6.0.17.jar:6.0.17] at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:973) ~[spring-beans-6.0.17.jar:6.0.17] at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:949) ~[spring-context-6.0.17.jar:6.0.17] at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:615) ~[spring-context-6.0.17.jar:6.0.17] at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) ~[spring-boot-3.1.9.jar:3.1.9] at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:738) ~[spring-boot-3.1.9.jar:3.1.9] at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:440) ~[spring-boot-3.1.9.jar:3.1.9] at org.springframework.boot.SpringApplication.run(SpringApplication.java:324) ~[spring-boot-3.1.9.jar:3.1.9] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1317) ~[spring-boot-3.1.9.jar:3.1.9] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1306) ~[spring-boot-3.1.9.jar:3.1.9] at com.lyuban.m4banktask.M4BankTaskApplication.main(M4BankTaskApplication.java:10) ~[main/:na] Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'modelServiceImpl' defined in file [J:\JAVA_projects\m4BankTask\libs\classes\java\main\com\lyuban\m4banktask\serviсes\Impl\ModelServiceImpl.class]: Unsatisfied dependency expressed through constructor parameter 0: Error creating bean with name 'myJPACriteria': Unsatisfied dependency expressed through field 'sessionFactory': Error creating bean with name 'sessionFactory' defined in class path resource [com/lyuban/m4banktask/configs/HibernateConf.class]: org/springframework/core/type/classreading/ClassFormatException

The exception does not provide information about where the problem is located. I do not know how to fix it.

0

There are 0 best solutions below