在Spring Boot应用程序中添加spring-boot-starter-security会导致错误“ entityManagerFactory”或“ persistenceUnitName”

香农·肯德里克(Shannon Kendrick)

我使用Spring Initializr(http://start.spring.io/创建了一个Spring Boot(0.5.0.BUILD-SNAPSHOT)应用程序,并添加了一个@RestController,一个CrudRepository接口和一个@Entity类。 -没什么复杂的。我的Maven POM包含以下依赖项:

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-jdbc</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>com.h2database</groupId>
        <artifactId>h2</artifactId>
    </dependency>

Application类包含默认值:

@ComponentScan
@EnableAutoConfiguration
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

这个简单的应用程序运行没有错误,但是我决定将Spring Security添加到POM以保护管理端点:

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-security</artifactId>
    </dependency>

现在该应用程序将无法启动,并且我得到以下信息:

java.lang.IllegalArgumentException:需要'entityManagerFactory'或'persistenceUnitName'

Caused by: java.lang.IllegalArgumentException: 'entityManagerFactory' or 'persistenceUnitName' is required
    at org.springframework.orm.jpa.JpaTransactionManager.afterPropertiesSet(JpaTransactionManager.java:304)
    at org.springframework.orm.jpa.JpaTransactionManager.<init>(JpaTransactionManager.java:141)
    at org.springframework.boot.autoconfigure.orm.jpa.JpaBaseConfiguration.transactionManager(JpaBaseConfiguration.java:68)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:166)
    ... 18 more

当我删除spring-boot-starter-security依赖关系时,该应用程序可以正常运行,但未启用安全性。错误是什么意思?该应用程序已在未启用Spring Security的情况下使用JPA和Hibernate。

戴夫·赛尔(Dave Syer)

那儿有个bug原因确实是深刻的技术问题,与春天的内部原因有关BeanFactory如果您想获得更多了解,请查看Github问题,但是也许您应该能够刷新快照依赖关系并获得修复。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章