在Ext插件中扩展Liferay UserLocalServiceImpl

时间:2012-10-16 07:46:37

标签: java liferay liferay-6

在我的Liferay 6.1.1安装中,我扩展了(注意:未覆盖)Ext插件中的UserLocalServiceImpl类,以提供更宽松的屏幕名称验证。但是,我无法让Liferay加载新类而不是默认的UserLocalServiceImpl类。

据我所知,替换服务类的"normal" way是使用钩子插件。不幸的是,钩子插件无法访问实现类。我必须延长UserLocalServiceWrapper而不是UserLocalServiceImpl,这对于这种特殊用途来说非常麻烦。

有没有办法让Liferay从Ext插件中使用我修改过的服务类?或者,有没有办法允许钩子插件访问实现类?

1 个答案:

答案 0 :(得分:0)

可以使用以下过程从Ext插件更改服务类实现:

  • 在Ext文件夹的META-INF下创建一个名为docroot/WEB-INF/ext-impl/src的新文件夹。

  • ext-spring.xml下创建一个名为docroot/WEB-INF/ext-impl/src/META-INF的新文件。

  • 搜索portal-spring.xml文件的Liferay 分发。在Liferay 6.1.1中,可以在portal-impl/src/META-INF/portal-spring.xml找到它。

  • portal-spring.xml的内容复制到之前创建的ext-spring.xml文件中。

  • ext-spring.xml中删除所有bean条目,但与要替换/扩展的类相对应的条目除外。

  • 对于每个剩余的条目,请将class属性更改为指向替换类。

  • 重新部署Ext插件并重新启动Liferay应用程序服务器。