我试图在Liferay 7中实现ModelListener。当我在UI中更新JournalArticle时,我想添加一个小行为和一些日志记录。
@Component(immediate = true, service = ModelListener.class)
public class DownloadsListener extends BaseModelListener<JournalArticle> {
@Reference
private StructureService structureService;
@Reference
private DLFileEntryLocalServiceUtil fileEntryLocalService;
private static final Log LOG = LogFactoryUtil.getLog(DownloadsListener.class);
@Override
public void onAfterUpdate(JournalArticle model) throws ModelListenerException {
LOG.error("UPDATES!");
LOG.error("UPDATES!");
super.onAfterUpdate(model);
if(structureService.isNieuwsArticle(model)) {
}
getFileFromURL("/documents/82177/0/file.pdf/0d10338c-8ca1-c5b7-cc4b-011bef1ee759");
}
private DLFileEntry getFileFromURL(String url) {
String[] splittedURL = StringUtil.split(url, '/');
return null;
}
}
但是,当我更新文章时,永远不会触发此代码。我没有在onAfterUpdate方法中遇到我的调试点,而且我没有看到任何日志记录。 OSGI模块已正确部署。我错过了什么?
答案 0 :(得分:0)
问题是我的ModelListener没有在OSGi容器中正确部署。 (虽然Eclipse / Apache Gogo告诉一切都很好)。
OSGi无法解决:
@Reference
private DLFileEntryLocalServiceUtil fileEntryLocalService;
将其更改为
@Reference
private DLFileEntryLocalService fileEntryLocalService;
现在行为正确了。遗憾的是,Apache GoGo有ZERO反馈。