Насколько я могу судить, ваш код выглядит нормально, но я могу подумать о нескольких вещах, которые вы можете попробовать. Пожалуйста, дайте мне знать, если это сработало для вас.
Во-первых. проверьте, одобрена ли статья. Если статья находится в черновом состоянии, данные не будут отражены, пока не будут утверждены.
Во-вторых. Вместо использования слушателя модели попробуйте переписать сервис с помощью ловушки.
<service>
<service-type>com.liferay.portlet.journal.service.JournalArticleService</service-type>
<service-impl>com.example.hook.service.impl.JournalArticleServiceImpl</service-impl>
</service>
Вам понадобится реализовать сервисную оболочку, JournalArticleServiceWrapper
.
Перезаписать методы обновления (их может быть несколько) и вызвать его родительский метод, затем выполнить логику. Вот так:
public JournalArticle someUpdateArticleMethod(Many params) SomeExceptions {
JournalArticle journalArticle = super.someUpdateArticleMethod(params);
// my code here.
}
Делать это с помощью слушателей модели гораздо проще. Хотя я не уверен, что это реальная проблема, возможно, существует проблема с использованием onAfterUpdate для обновления модели, поскольку может быть создан бесконечный цикл.