以下是我的要求:
每当创建网站时,在GroupListener
的帮助下,我们会向创建的网站添加一些自定义属性。
因此,假设您正在装箱“Liferay Test”网站,那么它将具有一些修复自定义属性“XYZ”,并在GroupListeners onAfterCreate方法中设置值。
我可以在网站设置下的自定义字段中看到此值。 现在基于这个值,我们在另一个系统中创建组(在liferay中,使用webservices)。
到目前为止一切顺利。
每当我们删除网站时,我们都需要通过网络服务从其他系统中删除等效组。 但是在删除网站时,在GroupListener中我们无法检索自定义属性。
通过添加expando listener进一步调试,我发现首先调用Expando侦听器,然后删除GroupLocalService / GroupListener的方法。
因此我们无法删除另一个系统中的组。
所以我想知道我们是否可以为听众定义订单。
Note: Since we were not getting custom attributes in listeners we implemented GroupLocalServiceImpl and with this we are getting custom attributes in delete method on local environment but not on our stage environment which has clustering.
答案 0 :(得分:0)
您不应该使用ModelListeners进行此类更改,而是创建ServiceWrappers,例如在GroupLocalService中包装有趣的方法(用于创建和删除)。
这也使您能够对在外部系统中创建记录的失败做出反应等。