2016-07-22 2 views
2

У меня есть строп Сервлет (и различные другие компоненты), работающий внутри пакета OSGi внутри AEM/Apache Felix.Изменения в пакете OSGi не активны до перезапуска AEM

например:

@SlingServlet(
     label = "XXXX - SSO Post Servlet", 
     metatype = true, 
     methods = {"POST"}, 
     name = "XXXX.core.components.SlingPostServlet", 
     paths = {"/services/SSOPost"} 
) 
public class SlingPostServlet extends SlingAllMethodsServlet { 
    //etc 

Мои компоненты работают как и ожидалось, специалист способен создавать, объединять и развертывать весь штраф проекта.

Моя проблема в том, что обновления моих компонентов не активируются до тех пор, пока я не перезапущу весь экземпляр AEM. Я попытался обновить пакеты OSGi, перезапустить пакет и как можно больше действий UI для достижения этого эффекта, как я могу придумать, но не повезло.

Любые идеи? Я надеюсь, что это простая проблема с конфигурацией/кнопка, о которой я не знаю.

Спасибо.

+0

Вы видите узлы под этим путем/system/sling/installer/jcr/pauseУстановка при установке обновленного пакета? –

+0

@SharathMadappa нет, нет узлов на этом пути до или после установки. –

+0

после создания обновленного кода, откройте настройки JcrInstaller и сохраните его (цель - активировать метод активации JcrInstaller). Имеет ли это тот же эффект, что и перезапуск обновления компонента w.r.t экземпляра? –

ответ

0

Пуск запускается, но событие может быть неактивным. Он должен активироваться, когда служба фактически используется. Мы можем использовать аннотацию @Component(immediate=true) для активации компонента при запуске пучка

+0

Я действительно хотел, чтобы это было правильно, но не совсем там ... свойство (немедленное = истинное) недопустимо для аннотации \ @SlingServlet, а класс не может быть \ @SlingServlet и \ @Component в в то же время, насколько я могу судить. –

0

Сначала попробуйте удалить старую банку, а затем разверните новую банку. Это работает для меня большую часть времени, но не всегда.

Смежные вопросы