Spring LDAP示例需要持久性吗?

我是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,如果弹出安全启动项被删除则不会发生异常来自gradle)这就是为什么Spring正在寻找JPA实现和翻译器.其他人对链接中的示例有疑问.谢谢!

解决方法:

问题是spring-security-ldap对spring-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")
}
上一篇:c#-无法使用LDAP验证凭据


下一篇:通过LDAP获取sudoers(SUSE Linux Enterprise Server 12)