OSGi и Gemini JPA: использование администратора конфигурации
Я пишу небольшое приложение OSGi для учебных целей. Я успешно настроил Gemini JPA и DBAccess Services для использования JPA, и он работает нормально, пока я использую файл persistence.xml для настройки своих модулей персистентности.
Затем я наткнулся на этот пример. Похоже, действительно отличная возможность обеспечить постоянство конфигурации модуля во время выполнения. За исключением того, что это не работает. Я попробовал этот точный код (для автономной конфигурации), и он выполняется, но ничего не меняется в рамках. Насколько я понимаю, разве не должно быть нового сервиса, обеспечивающего новый блок постоянства?
Я использую платформу Equinox, все необходимые пакеты для gemini и dbaccess установлены и запущены, а пакет ConfigurationAdmin (org.eclipse.equinox.cm
) установлен и работает в точке, где выполняется мой код.
Я получаю доступ к Администратору конфигурации следующим образом:
ServiceReference<ConfigurationAdmin> s = context
.getServiceReference(ConfigurationAdmin.class);
ConfigurationAdmin admin = context.getService(s);
1 ответ
Возможно, проблема с порядком запуска: конфигурация должна быть создана до того, как источник данных будет проверен на постоянство. Попробуйте перезапустить свой пакет персистентности или измените начальный уровень пакета персистентности на более высокий уровень, чтобы он запускался позднее.
Кроме того, может быть удобно установить веб-консоль Felix, чтобы увидеть, действительно ли ваши данные конфигурации зарегистрированы в менеджере конфигурации.