Вопрос или проблема
У меня свежая установка ApacheDS (версия: 2.0.0.v20210717-M17) на Windows 11 на ARM. У меня установлен Java SDK 17 (LTS). Я создал первый сервер со всеми настройками по умолчанию, и, похоже, что он запустился правильно с первой попытки.
Затем я попытался импортировать несколько LDIF, но это не сработало, и сервер заявил, что он выключен. И да, с того момента я не могу запустить сервер снова. Я даже пробовал удалить сервер, создать новый и так далее… Все еще он не запускается.
Если я проверяю журналы, вот что я вижу:
[12:27:25] INFO [org.apache.directory.server.UberjarMain] - Запуск службы.
[12:27:30] WARN [org.apache.directory.api.ldap.model.entry.DefaultAttribute] - ERR_13207_VALUE_ALREADY_EXISTS Значение '1.3.6.1.4.1.42.2.27.8.5.1' уже существует в атрибуте (supportedControl)
[12:27:30] WARN [org.apache.directory.api.ldap.model.entry.DefaultAttribute] - ERR_13207_VALUE_ALREADY_EXISTS Значение '1.2.840.113556.1.4.841' уже существует в атрибуте (supportedControl)
[12:27:30] WARN [org.apache.directory.api.ldap.model.entry.DefaultAttribute] - ERR_13207_VALUE_ALREADY_EXISTS Значение '1.3.6.1.4.1.4203.1.9.1.2' уже существует в атрибуте (supportedControl)
[12:27:30] WARN [org.apache.directory.api.ldap.model.entry.DefaultAttribute] - ERR_13207_VALUE_ALREADY_EXISTS Значение '1.2.840.113556.1.4.319' уже существует в атрибуте (supportedControl)
[12:27:30] WARN [org.apache.directory.api.ldap.model.entry.DefaultAttribute] - ERR_13207_VALUE_ALREADY_EXISTS Значение '1.2.840.113556.1.4.528' уже существует в атрибуте (supportedControl)
[12:27:31] WARN [org.apache.directory.api.ldap.model.entry.Value] - MSG_13202_AT_IS_NULL ()
[12:27:31] WARN [org.apache.directory.api.ldap.model.entry.Value] - MSG_13202_AT_IS_NULL ()
[12:27:31] WARN [org.apache.directory.api.ldap.model.entry.Value] - MSG_13202_AT_IS_NULL ()
[12:27:31] WARN [org.apache.directory.api.ldap.model.entry.Value] - MSG_13202_AT_IS_NULL ()
[12:27:31] WARN [org.apache.directory.api.ldap.model.entry.Value] - MSG_13202_AT_IS_NULL ()
[12:27:31] WARN [org.apache.directory.api.ldap.model.entry.Value] - MSG_13202_AT_IS_NULL ()
[12:27:31] WARN [org.apache.directory.api.ldap.model.entry.Value] - MSG_13202_AT_IS_NULL ()
[12:27:31] WARN [org.apache.directory.api.ldap.model.entry.Value] - MSG_13202_AT_IS_NULL ()
[12:27:31] WARN [org.apache.directory.api.ldap.model.entry.Value] - MSG_13202_AT_IS_NULL ()
[12:27:31] WARN [org.apache.directory.api.ldap.model.entry.Value] - MSG_13202_AT_IS_NULL ()
[12:27:31] WARN [org.apache.directory.api.ldap.model.entry.Value] - MSG_13202_AT_IS_NULL ()
[12:27:31] WARN [org.apache.directory.api.ldap.model.entry.Value] - MSG_13202_AT_IS_NULL ()
[12:27:31] WARN [org.apache.directory.server.core.DefaultDirectoryService] - Вы не изменили пароль администратора экземпляра службы каталогов 'default'. Пожалуйста, обновите пароль администратора как можно скорее, чтобы предотвратить возможное нарушение безопасности.
Есть идеи, что может быть не так?
Спасибо заранее,
Проблема была в Java 17. Переход на Java 11 заставил его работать.
Установка JDK-11 была самым простым решением. Это сработало после настройки java classpath на jdk 11
На macOS, для всех, кто пытается запустить это при наличии нескольких версий java, установленных с помощью brew, и не хочет настраивать ApacheDirectoryStudio.ini, вот однострочник для терминала:
brew install openjdk@11
sudo ln -sfn /usr/local/opt/openjdk@11/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk-11.jdk
/Applications/ApacheDirectoryStudio.app/Contents/MacOS/ApacheDirectoryStudio -vm $(/usr/libexec/java_home -v 11)/bin/java
Ответ или решение
Проблема с запуском Apache DS LDAP сервера: Решение и рекомендации
Введение
Установка и настройка сервера Apache Directory Server (ApacheDS) могут столкнуться с различными проблемами, особенно на операционных системах и архитектурах, таких как Windows 11 на ARM. В данном случае мы рассматриваем проблему, связанную с тем, что сервер не запускается после первой успешной инициализации и попыток импортирования данных в формате LDIF.
Признаки проблемы
В процессе troubleshooting вы столкнулись с предупреждениями в логах, которые указывают на ошибки, связанные с дублирующимися значениями атрибутов и отсутствующими данными. Конкретно, вы увидели множество сообщений, таких как:
ERR_13207_VALUE_ALREADY_EXISTS
– это значит, что сервер пытается добавить значение, которое уже существует.MSG_13202_AT_IS_NULL
– указывает на то, что некоторые атрибуты не были заданы или содержат пустое значение.
Кроме того, также было напомнено о необходимости смены пароля администратора, что является важной частью настройки безопасности.
Причина проблемы
Основной причиной, из-за которой сервер ApacheDS не запускался, оказалась версия Java. Ваша предыдущая установка использовала JDK 17, которая на тот момент не полностью поддерживалась ApacheDS версии 2.0.0. После перехода на JDK 11 проблема была решена, и сервер запустился без дополнительных ошибок.
Рекомендации по устранению проблемы
-
Смена версии Java:
- Убедитесь, что используете совместимую версию Java. Рекомендуется использовать JDK 11 для ApacheDS, так как версии выше могут вызвать несовместимости.
- Если требуется несколько версий Java, используйте инструменты управления версиями, такие как SDKMAN! для Linux и macOS или
jEnv
.
-
Настройка переменной окружения:
- Убедитесь, что переменная окружения
JAVA_HOME
указывает на установленную версию JDK 11. - Проверьте переменную
PATH
, чтобы в первую очередь использовалась версия Java, которая вам необходима.
- Убедитесь, что переменная окружения
-
Очистка и переустановка:
- Если изменение версии Java не решило проблему, рассмотрите возможность удаления конфигураций сервера ApacheDS и повторной установки. Это поможет избавиться от оставшихся конфигурационных файлов, которые могут вызывать конфликты.
-
Проверка логов:
- Регулярно проверяйте логи, чтобы выяснить, какие ошибки возникают. Это поможет не только в диагностике текущих проблем, но и в предотвращении будущих.
Заключение
Проблемы с запуском ApacheDS LDAP сервера могут быть связаны с несовместимостью версий, особенно когда речь идет о Java. Переход на JDK 11 оказался простой и эффективной мерой для решения проблемы. Подобные конфликты могут возникать у пользователей на различных платформах, и важно своевременно проверять совместимость программного обеспечения. Старайтесь следовать рекомендациям и регулярно проводить обслуживание серверного ПО для предотвращения нежелательных инцидентов.
Дополнительные советы
Если вы работаете на macOS и не хотите редактировать файлы конфигурации, вы можете использовать браузеры установки моделей Java из Homebrew, как показано в одном из предложений. Это упростит управление версиями Java и значительно упростит работу с Apache Directory Studio.
Понимание процессов работы LDAP и поддержка вашей среды разработки в актуальном состоянии помогут вам избежать многих проблем и обеспечат эффективную работу вашего сервера.