Liferay宣布portlet挂钩

时间:2012-02-27 17:34:01

标签: java liferay hook portlet liferay-6

我正在尝试使用以下代码为Liferay公告portlet创建一个钩子:

package com.ahc.hook.service.impl;

import com.liferay.portlet.announcements.*;

public class MyAnnouncementsEntryLocalServiceImpl
    extends AnnouncementsEntryLocalServiceBaseImpl {

    protected void validate(String title, String content, String url) {

        if (Validator.isNull(title)) {
            throw new EntryTitleException();
        }

        if (Validator.isNull(content)) {
            throw new EntryContentException();
        }

        if ((url.length() > 0) && !Validator.isUrl(url)) {
            throw new EntryURLException();
        }
    }

}

但我一直收到以下错误:

[javac] Compiling 1 source file to /home/AHC/darryl.pinto/liferay/plugins/hooks/ahc-announcements-hook/docroot/WEB-INF/classes
[javac] /home/AHC/darryl.pinto/liferay/plugins/hooks/ahc-announcements-hook/docroot/WEB-INF/src/com/ahc/hook/service/impl/MyAnnouncementsEntryLocalServiceImpl.java:25: cannot find symbol
[javac] symbol: class AnnouncementsEntryLocalServiceBaseImpl extends AnnouncementsEntryLocalServiceBaseImpl {
[javac]               ^

我有一种感觉,我错过了扩展部分的内容,但我无法弄清楚是什么

我正在使用Liferay 6.0.5

有人有任何想法吗?

1 个答案:

答案 0 :(得分:1)

* LocalServiceBaseImpl不可用于任何钩子,因为它是实现的一部分。相反,你想要的是从* Wrapper继承。有关如何操作,请参阅documentation for overriding a service。这也包含一些推理和解释,在您的实现加载的类加载器中可以使用的是什么。