Hook Liferay-GroupWrapper的钩子

Hook Liferay-GroupWrapper的钩子,hook,liferay,liferay-6,Hook,Liferay,Liferay 6,我正在尝试重写com.liferay.portal.model.Group中的getDescriptiveName()方法 我找到了一个包装器(com.liferay.portal.model.GroupWrapper),因此我尝试按照文档中的说明编写一个钩子: liferayhook.xml: com.liferay.portal.model.GroupWrapper fr.villedeniort.hook.expando.GroupWrapperImpl fr.villediniort

我正在尝试重写com.liferay.portal.model.Group中的getDescriptiveName()方法

我找到了一个包装器(com.liferay.portal.model.GroupWrapper),因此我尝试按照文档中的说明编写一个钩子:

liferayhook.xml


com.liferay.portal.model.GroupWrapper
fr.villedeniort.hook.expando.GroupWrapperImpl
fr.villediniort.hook.expando.groupwrapperpimpl.java

public类GroupWrapperImpl扩展了GroupWrapper{
公共GroupWrapperImpl(组组){
超级(组);
}
@凌驾
public java.lang.String getDescriptiveName()
抛出com.liferay.portal.kernel.exception.PortalException,
com.liferay.portal.kernel.exception.SystemException{
返回super.getDescriptiveName();
}
部署挂钩时,会引发异常:

java.lang.NoSuchMethodException: fr.villedeniort.hook.expando.GroupWrapperImpl.<init>(com.liferay.portal.model.GroupWrapper)
java.lang.NoSuchMethodException:fr.Villediniort.hook.expando.GroupWrapperImpl.(com.liferay.portal.model.GroupWrapper)
我浏览了代码,发现它在这部分中断,原因是我忽略了:

Constructor serviceImplConstructor=serviceImplClass.getConstructor(新类[]{serviceTypeClass});
此时,变量具有以下值:

serviceType "com.liferay.portal.model.GroupWrapper" (id=14829)
serviceImpl "fr.villedeniort.hook.expando.GroupWrapperImpl" (id=14830)
serviceTypeClass Class<T> (com.liferay.portal.model.GroupWrapper) (id=14831)
serviceImplClass Class<T> (fr.villedeniort.hook.expando.GroupWrapperImpl) (id=14832)
serviceType“com.liferay.portal.model.GroupWrapper”(id=14829)
serviceImpl“fr.villediniort.hook.expando.GroupWrapperImpl”(id=14830)
serviceTypeClass类(com.liferay.portal.model.GroupWrapper)(id=14831)
serviceImplClass类(fr.Villediniort.hook.expando.GroupWrapperImpl)(id=14832)
你知道吗


谢谢!

您还应该有一个没有任何参数的构造函数。现在您有了一个带有构造函数参数的构造函数,但是没有纯类构造函数,java在创建类实例时会进行搜索。调用纯构造函数后,java会调用有参数的构造函数


我在其他一些上下文中遇到了类似的情况,这就是解决方案。
错误消息上的标记提到了此类问题。

显然,不可能钩住服务以外的其他类,因此我必须找到不同的方法。对于我的情况,我钩住了一个JSP并编写了自己的方法,以从钩子中获得正确的描述性名称