Webappclass加载器无法在钩子中加载超类?

时间:2012-12-13 06:13:19

标签: hook liferay classloader noclassdeffounderror

我正在使用liferay ce 6.1.0。我需要在一个钩子中扩展LayoutAction类。但是类加载器无法在钩子中加载

Caused by: java.lang.NoClassDefFoundError: com/liferay/portal/action/LayoutAction
java.lang.ClassNotFoundException: com.liferay.portal.action.LayoutAction
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1688)

这是类加载器的问题还是我应该使用以下的不同子类来扩展。 提前致谢

我想覆盖LayoutAction类的includeLayoutContent()方法,以便对页面的视图数量进行跟踪。如果此类无法扩展,是否有任何其他方法或类可以扩展来实现相同

1 个答案:

答案 0 :(得分:1)

com.liferay.portal.action.LayoutAction位于portal-impl.jar中,钩子无法使用。因此你不能这样做。

如果你想给我们一个暗示你想要实现的目标,有人可能会告诉你如何做你想做的事。

通过您添加的信息,我将给您一个提示:通常,每个网页浏览的写入操作都被认为是非常昂贵的:您的门户网站的性能将受此影响。我宁愿建议使用google anayltics,piwik或类似工具等外部工具来生成统计信息,包括特定网页的网页浏览量。

另一种方法,如果你可以使用较低的潜在性能,就是在你的主题中嵌入这样一个方法 - 主题可以访问当前页面并可以执行其他功能。您最好将此位置放在页面的末尾,此时其他所有内容都已呈现并发送给客户端。