Liferay 7 Login Post 可以在portal-ext.properties中设置事件吗?

Liferay 7 Login Post Event can be set in portal-ext.properties?

可以在 portal-ext.properties 中设置 login.events.post = com.custom.LoginPostAction 工作 我在 liferay 7 中尝试过这种方式,但它不起作用。我们如何在 liferay 7.

中触发登录 post 事件

liferay-hook.xml

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

portal.properties

login.events.post=com.test.action.LoginPostAction

我遇到以下异常

无法使用门户 class 加载程序或当前上下文 class 加载程序加载 com.test.action.LoginPostAction java.lang.ClassNotFoundException:com.test.action.LoginPostAction 来自 [模块“deployment.ROOT.war”来自服务模块加载器] 在 org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:198)

您现在将拥有生命周期操作。这些是在所需事件上触发的 OSGi 组件。您可以在 blade sample 存储库

中找到一个模板(和一些配置选项)

为了使这个答案独立:代码现在看起来像这样 - 查看示例中的构建说明(并从预登录到 post-登录)

@Component(
    immediate = true, property = "key=login.events.pre",
    service = LifecycleAction.class
)
public class LoginPreAction implements LifecycleAction {

    @Override
    public void processLifecycleEvent(LifecycleEvent lifecycleEvent)
        throws ActionException {

        // Your code goes here
    }
}

总的来说,插件机制在 Liferay 6.x 和 7.x 之间发生了巨大的变化。通常,您应该将所有旧的定制迁移到 OSGi - 我想知道 Liferay IDE 中的升级向导是否会自行处理其中的一些...我已经有很长时间没有使用它了。