覆盖Liferay启动事件

时间:2012-04-27 15:55:02

标签: events liferay startup

我对Liferay Startup Events有疑问。

在Liferay文档中给出了:

  

启动事件

     

输入扩展com.liferay.portal.struts.SimpleAction的逗号分隔的类名列表。这些类将在指定的事件中运行。

有人可以告诉我global.startup.eventsapplication.startup.events之间有什么区别吗?任何机构可以告诉我在什么情况下我们需要覆盖它们?

这两个启动事件是否应该扩展com.liferay.portal.struts.SimpleAction?我除了SimpleAction之外找不到任何内容:

public abstract class SimpleAction {

    public abstract void run(String[] ids) throws ActionException;

    }
}

我也想知道这个类什么都不包含,Liferay如何知道要读取和处理的XML文件?

由于

1 个答案:

答案 0 :(得分:15)

global.startup.events - 为全局服务器运行一次

application.startup.events - 在启动时为每个门户网站实例运行。如果您的服务器上有一个门户网站实例(正常情况) - 这些属性之间没有区别。我使用application.startup.events

扩展com.liferay.portal.kernel.events.SimpleAction类和impliment run - methode,将由liferay启动调用。为此,创建一个hook插件并在liferay-hook.xml中注册属性文件,例如:

<hook>
    <portal-properties>portal-myext.properties</portal-properties>
</hook>

在类路径中创建portal-myext.properties并设置启动操作:

application.startup.events=com.my.actions.MyStartupAction

动作MyStartupAction必须位于同一个类路径中,因此同一个hook-plugin。