当前位置: 首页 > 知识库问答 >
问题:

上下文未加载java配置spring数据示例

王曜文
2023-03-14
LocalContainerEntityManagerFactoryBean not created context faild

以下是错误:

java.lang.IllegalStateException:未能在org.springframework.test.context.cache.defaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:124)加载ApplicationContext(defaultCacheAwareContextLoaderDelegate.java:124),原因是:org.springframework.beans.factory.beanCreationException:在嵌套异常是java.lang.NosuchMethodError:javax.persistence.spi.persistenceUnitInfo.getSharedCachemode()ljavax/persistence/sharedCachemode;在org.springframework.beans.factory.support.AbstractaUtowireCapableBeanFactory.InitializeBean(AbstractaUtowireCapableBeanFactory.java:1578)

和代码:

@ComponentScan
@Configuration
@EnableJpaRepositories("com.test.spring.repository")
public class AppConfig {

    @Value("${jdbc.driverClassName}")
    private String                  jdbcDriverClassName;
    @Value("${jdbc.url}")
    private String                  jdbcURL;
    @Value("${jdbc.username}")
    private String                  jdbcUserName;
    @Value("${jdbc.password}")
    private String                  jdbcPassword;

    public static PropertySourcesPlaceholderConfigurer getPropertiesFile(String profileName) {

        PropertySourcesPlaceholderConfigurer pspc = new PropertySourcesPlaceholderConfigurer();
        String path = new StringJoiner("").add("application_dev")/*.add(profileName)*/.add(".properties").toString();
        Resource location             = new ClassPathResource(path);
        pspc.setLocations(location);
        return pspc;
    }



    @Bean
    public DataSource dataSource() {

        BasicDataSource dataSource = new BasicDataSource();
        dataSource.setDriverClassName(jdbcDriverClassName);
        dataSource.setUrl(jdbcURL);
        dataSource.setUsername(jdbcUserName);
        dataSource.setPassword(jdbcPassword);
        return dataSource;
    }
    @Bean(name="entityManagerFactory")
    public LocalContainerEntityManagerFactoryBean entityManagerFactory() {

        LocalContainerEntityManagerFactoryBean factoryBean = new LocalContainerEntityManagerFactoryBean();

        factoryBean.setDataSource(dataSource());
        factoryBean.setPackagesToScan("com.test.spring.domain");
        JpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();

        factoryBean.setJpaVendorAdapter(vendorAdapter);

        Properties props = new Properties();
        props.put("hibernate.dialect", "org.hibernate.dialect.MySQLDialect");
        props.put("hibernate.hbm2ddl.auto", "create");
        factoryBean.setJpaProperties(props);
        return factoryBean;
    }
    @Bean
    public PlatformTransactionManager transactionManager(EntityManagerFactory emf) {

       JpaTransactionManager transactionManager = new JpaTransactionManager();
       transactionManager.setEntityManagerFactory(emf);
       return transactionManager;
    }
}

//Here is the pom file

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.test.spring</groupId>
    <artifactId>EntityExample</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.11</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>4.2.0.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>4.2.0.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context-support</artifactId>
            <version>4.2.0.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>javax.persistence</groupId>
            <artifactId>persistence-api</artifactId>
            <version>1.0.2</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.data</groupId>
            <artifactId>spring-data-jpa</artifactId>
            <version>1.7.0.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>commons-dbcp</groupId>
            <artifactId>commons-dbcp</artifactId>
            <version>1.4</version>
        </dependency>

        <dependency>
            <groupId>cglib</groupId>
            <artifactId>cglib</artifactId>
            <version>3.1</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-tx</artifactId>
            <version>4.2.0.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-orm</artifactId>
            <version>4.2.0.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.30</version>
            <scope>runtime</scope>
        </dependency>

    </dependencies>
</project>

共有1个答案

岳阳文
2023-03-14

由于缺少hibernate类和库,请尝试使用以下方法扩展pom依赖关系:

<dependency>
   <groupId>org.hibernate</groupId>
   <artifactId>hibernate</artifactId>
   <version>3.5.0</version>
</dependency>
 类似资料:
  • 你能帮我找出配置中缺少的步骤吗? 我正试图将logger添加到我非常简单的web应用程序中:为了做到这一点,我使用了log4j2 (beta9)。 我写下了我的<code>log4j2.xml<code>如下 我把它放在WEB-INF文件夹里。 然后,我有一个简单的servlet,它执行以下操作 正如你所看到的,这只是一个尝试,看看是否如预期的那样工作,但它没有。通过阅读此处的web app,我不

  • 我有一个Spring Boot应用程序,它有一些配置属性。我正在尝试为一些组件编写测试,并希望从< code>test.properties文件中加载配置属性。我不能让它工作。 这是我的代码: 文件(在src/test/resources下): 配置属性类: 我的测试: 测试失败,并显示“预期实际不为空”,这意味着未设置配置属性类中的属性。

  • 我正在为我的Spring REST项目建立swagger2文档。但是当我尝试执行http://localhost:8085/swagger-ui.html时,返回空页面。问题是我的bean类没有被我的spring MVC应用程序加载,它也不是Spring Boot应用程序。 下面是我的swagger2配置类 请同时找到web.xml条目 如果有什么东西丢了,请告诉我?任何帮助都是非常感谢的。

  • 今天,我将我的项目从Spring Boot1.5.9更新到2.1.1,我的一些测试停止工作。当我开始测试时,控制台会弹出错误: com.example.rest.config.SecurityConfig中的authEntryPoint字段需要一个类型为“com.example.rest.service.auth.EntryPoints.AuthenticationEntryPoint”的bean

  • 所以我有一个项目,在其中我使用Spring boot,并希望利用一个模块系统。我希望模块系统能够动态地重新加载。我让它几乎可以工作,但是@ComponentScan在模块中完全不工作。 有一个模块文件夹,包含启动时加载的jar文件,需要动态卸载、加载和重新加载。 模块通过AnnotationConfigApplicationContext创建,上下文的类加载器设置为核心的类加载器,模块接口中的方法

  • 我有以下项目结构: src/main/resources/meta-inf/applicationcontext.xml src/webapp/web.xml .另外,在构建部分的pom.xml中,我将最终名称设置为“bet-manager-api”。我做错了什么?为什么没有伐木?我检查了tomcat/logs/中的所有日志,但没有找到任何重要的日志。谢谢