Spring LDAP示例需要持久性吗?

时间:2015-01-14 03:15:23

标签: spring ldap spring-boot

我是Spring和LDAP的新手。我发现了一个很棒的例子,解释了如何快速启动spring boot和apacheds。我通过使用建议的Gradle配置来跟踪示例。 The link。当我开始弹簧启动时,我收到以下错误......


 Error creating bean with name 'persistenceExceptionTranslationPostProcessor' defined in class path resource [org/springframework/boot/autoconfigure/dao/PersistenceExceptionTranslationAutoConfiguration.class]: Initialization of bean failed; nested exception is java.lang.IllegalStateException: No persistence exception translators found in bean factory. Cannot perform exception translation.

我不确定为什么Spring要求持久性转换器,但是通过搜索其他帖子看来,类路径中有一个ORM(我没有加载ORM JAR,如果spring安全启动则不会发生异常从gradle中删除了条目)这就是Spring正在寻找JPA实现和翻译器的原因。其他人对链接中的示例有疑问。谢谢!

1 个答案:

答案 0 :(得分:6)

问题在于spring-security-ldapspring-tx具有传递依赖性,并且所引入的版本为3.2.8.RELEASE。 Spring Boot 1.2需要4.1.x. Maven不会因为其优越的依赖管理而发生这种情况。

您可以通过在spring-tx上添加显式依赖项来解决问题。没有必要指定一个版本,因为Spring Boot会为您处理这个问题。根据您在问题中链接的示例,这将使您的依赖项看起来像这样:

dependencies {
    compile("org.springframework.boot:spring-boot-starter-web")
    compile("org.springframework.boot:spring-boot-starter-security")
    compile("org.springframework:spring-tx")
    compile("org.springframework.security:spring-security-ldap:3.2.4.RELEASE")
    compile("org.apache.directory.server:apacheds-server-jndi:1.5.5")
    testCompile("junit:junit")
}