在Liferay 7中注册ModelListener <journalarticle>

时间:2018-03-30 06:30:34

标签: liferay liferay-7

我试图在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模块已正确部署。我错过了什么?

1 个答案:

答案 0 :(得分:0)

问题是我的ModelListener没有在OSGi容器中正确部署。 (虽然Eclipse / Apache Gogo告诉一切都很好)。

OSGi无法解决:

@Reference
private DLFileEntryLocalServiceUtil fileEntryLocalService;

将其更改为

@Reference
private DLFileEntryLocalService fileEntryLocalService;

现在行为正确了。遗憾的是,Apache GoGo有ZERO反馈。