Попытка использовать Spring LDAP для кодирования - PullRequest
7 голосов
/ 17 апреля 2011

Я пытаюсь использовать Spring LDAP для кодирования

<ldap-server ldif="classpath:my-ldap-clone.ldif" />

но я получаю эту ошибку

NoClassDefFoundError: org/apache/directory/server/core/DirectoryService

Что я делаю не так?

Ответы [ 3 ]

13 голосов
/ 11 мая 2011

Использование Maven:

    <dependency>
        <groupId>org.apache.directory.server</groupId>
        <artifactId>apacheds-all</artifactId>
        <version>1.5.7</version>
    </dependency>
3 голосов
/ 13 марта 2017

Если вы используете Maven, они на самом деле происходят из необязательной зависимости spring-security-ldap.

Использование apacheds-all - плохая идея, потому что оно включает в себя множество довольно общих зависимостей, таких как slf4j и dom4j. Вы легко можете столкнуться с проблемами загрузчика классов.

Вместо этого вы должны заглянуть внутрь pom версии spring-security-ldap, которую вы используете, для необязательных зависимостей apacheds и скопировать их в pom без элементов <scope> и <optional> (к сожалению, есть нет лучшего способа обработки необязательных зависимостей с помощью Maven).

Например, с spring-security-ldap 4.2.2 , это даст:

<dependency>
    <groupId>org.apache.directory.server</groupId>
    <artifactId>apacheds-core</artifactId>
    <version>1.5.5</version>
</dependency>
<dependency>
    <groupId>org.apache.directory.server</groupId>
    <artifactId>apacheds-core-entry</artifactId>
    <version>1.5.5</version>
</dependency>
<dependency>
    <groupId>org.apache.directory.server</groupId>
    <artifactId>apacheds-protocol-ldap</artifactId>
    <version>1.5.5</version>
</dependency>
<dependency>
    <groupId>org.apache.directory.server</groupId>
    <artifactId>apacheds-protocol-shared</artifactId>
    <version>1.5.5</version>
</dependency>
<dependency>
    <groupId>org.apache.directory.server</groupId>
    <artifactId>apacheds-server-jndi</artifactId>
    <version>1.5.5</version>
</dependency>

(похоже, он не изменился с версии 3.2)

2 голосов
/ 17 апреля 2011

Скачать ApcheDS по ссылке ниже http://directory.apache.org/ или получите полную банку от здесь Я привык работать с Spring Security 3.0.5 с LDAP (Spring LDAP 1.3). Тогда я не выполнил требования ApacheDS. Проверьте версию Spring Secuirty, которая может зависеть от ApacheDS.

...