未使用Liferay 7服务生成器生成的Finder Util类

问题描述:

尽管Liferay 6.2中的服务生成器没有问题,但当我构建服务以生成我的第一个Finder Util类时,遇到了Liferay 7中的阻塞问题。 当我发现时,我甚至决定从头开始一个项目,问题依然存在。 即使有官方文档,也没有任何作用。未使用Liferay 7服务生成器生成的Finder Util类

有人有任何想法来帮助我吗?

下面是我在Eclipse火星上次测试的完整描述:

  1. 创建一个新的Liferay工作区
  2. 创建一个新的Liferay工程模块服务构建
  3. 创建service.xml的Foo对象
  4. 生成服务 (类是公生成)
  5. 手动创建在persistence.impl包FooFinderImpl类
  6. 构建服务
    FooFinder界面生成良好但未生成FooFinderUtil类。
  7. 添加一些方法在FooFinderImpl类
  8. 构建服务
  9. 没有新

谢谢你的帮助。

文森特

当你建立有在的build.gradle一些属性,所以如果你想生成的Util类具有osgiModule设置为false的服务。

buildService { 
    apiDir = "../foo-api/src/main/java" 
    osgiModule = false 
    propsUtil = "com.liferay.docs.foo.service.util.PropsUtil" 
} 

否则,如果你想使用的OSGi你可以retrive取景器这样

@Reference 
private volatile FooFinder fooFinder; 

@Reference(unbind = "-") 
protected void setFooFinder(
     FooFinder fooFinder) { 

    _fooFinder = fooFinder; 
} 

private FooFinder _fooFinder; 

更多信息请参阅Liferay的-docs的https://dev.liferay.com/develop/tutorials/-/knowledge_base/7-0/finding-and-invoking-liferay-services

exampel github http://github.com/bruinen/liferay-services-example

+0

非常感谢您的回答! 你的第一个主张解决了这个问题,但我会保持OSGI。 所以,我刚刚尝试第二个,但我的发现者为空,我必须在其他地方声明它吗? – Vincent

+0

你可以尝试我在编辑中添加的其他代码吗?引用需要接口的服务实现,所以你只需要部署osgi bundle foo-service和foo-api。尝试在使用查找程序'Import-Package:com.liferay.foo.service'的包中导入包。 –

+0

好的,我的发现者在第三种解决方案中仍然是空的,但我将阅读你已经提到的Liferay文档。我给你消息。 – Vincent