未使用Liferay 7服务生成器生成的Finder Util类
问题描述:
尽管Liferay 6.2中的服务生成器没有问题,但当我构建服务以生成我的第一个Finder Util类时,遇到了Liferay 7中的阻塞问题。 当我发现时,我甚至决定从头开始一个项目,问题依然存在。 即使有官方文档,也没有任何作用。未使用Liferay 7服务生成器生成的Finder Util类
有人有任何想法来帮助我吗?
下面是我在Eclipse火星上次测试的完整描述:
- 创建一个新的Liferay工作区
- 创建一个新的Liferay工程模块服务构建
- 创建service.xml的Foo对象
- 生成服务 (类是公生成)
- 手动创建在persistence.impl包FooFinderImpl类
- 构建服务
FooFinder界面生成良好但未生成FooFinderUtil类。 - 添加一些方法在FooFinderImpl类
- 构建服务
- 没有新
谢谢你的帮助。
文森特
答
当你建立有在的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
非常感谢您的回答! 你的第一个主张解决了这个问题,但我会保持OSGI。 所以,我刚刚尝试第二个,但我的发现者为空,我必须在其他地方声明它吗? – Vincent
你可以尝试我在编辑中添加的其他代码吗?引用需要接口的服务实现,所以你只需要部署osgi bundle foo-service和foo-api。尝试在使用查找程序'Import-Package:com.liferay.foo.service'的包中导入包。 –
好的,我的发现者在第三种解决方案中仍然是空的,但我将阅读你已经提到的Liferay文档。我给你消息。 – Vincent