在Liferay 7中使用LocalServiceUtils

时间:2016-12-12 10:15:34

标签: liferay liferay-7

我们正在开始我们的第一个Liferay 7项目,但我已经陷入困境。

我想创建一个从DDMContent表读取数据的portlet。 幸运的是有DDMContentLocalServiceUtil。

我对如何实际使用它感到困惑。

我将它添加到build.gradile文件中,如下所示:

+----+------+-------+------+------+------+------+------+------+------+------+------+------+------+------+-------+
| id | name | head  | apr  | may  | jun  | jul  | aug  | sep  | oct  | nov  | dec  | jan  | feb  | mar  | total |
+----+------+-------+------+------+------+------+------+------+------+------+------+------+------+------+-------+
| 1  | A    | basic | 1000 | 1000 | 1000 | 1000 | 1000 | 1000 | 1000 | 1000 | 1000 | 1000 | 1000 | 1000 | 12000 |
+----+------+-------+------+------+------+------+------+------+------+------+------+------+------+------+-------+
| 1  | A    | hra   | 500  | 500  | 500  | 500  | 500  | 500  | 500  | 500  | 500  | 500  | 500  | 500  | 6000  |
+----+------+-------+------+------+------+------+------+------+------+------+------+------+------+------+-------+
| 2  | B    | basic | 2000 | 2000 | 2000 | 2000 | 2000 | 2000 | 2000 | 2000 | 2000 | 0    | 0    | 2000 | 20000 |
+----+------+-------+------+------+------+------+------+------+------+------+------+------+------+------+-------+
| 2  | B    | hra   | 500  | 500  | 500  | 500  | 500  | 500  | 500  | 500  | 500  | 0    | 0    | 500  | 5000  |
+----+------+-------+------+------+------+------+------+------+------+------+------+------+------+------+-------+
| 3  | C    | basic | 5000 | 5000 | 5000 | 5000 | 5000 | 5000 | 0    | 0    | 0    | 5000 | 5000 | 5000 | 45000 |
+----+------+-------+------+------+------+------+------+------+------+------+------+------+------+------+-------+
| 3  | C    | hra   | 500  | 500  | 500  | 500  | 500  | 500  | 0    | 0    | 0    | 500  | 500  | 500  | 4500  |
+----+------+-------+------+------+------+------+------+------+------+------+------+------+------+------+-------+

我将它添加到bnd.bnd文件中,如下所示:

compileOnly group: "com.liferay", name: "com.liferay.dynamic.data.mapping.api", version: "3.1.0"

然后我将这个包含在我的portlet类中:

Import-Package: com.liferay.dynamic.data.mapping.api;version=3.1.0

portlet编译并开始部署,但我从未达到可以实际使用它的程度,因为它从未完全部署。 没有例外,也没有暗示我做错了什么。

我的版本号是否正确? 我需要将它添加到bnd.bnd文件中吗? 谁可以帮助我?

致以最诚挚的问候,

丹尼尔

1 个答案:

答案 0 :(得分:4)

1)你应该使用

Import-Package: *

让BND根据你正在编译的jar文件(你在Gradle的依赖项中拥有的文件)为你解决这个问题。

2)不要导入<Name>LocalServiceUtil类。那些不是OSGi服务。请改用<Name>LocalService。这些是定义合同的接口。在你的情况下应该是:

@Reference
public void setContentLocalService(DDMContentLocalService contentLocalService) {

3)如果您的捆绑包仍无法正常启动,请连接到gogo shell(telnet localhost 11311)并检查其状态。使用diag命令或只是尝试使用start <bundleId>手动启动它,框架会告诉您它是否有问题。