我们正在开始我们的第一个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文件中吗? 谁可以帮助我?
致以最诚挚的问候,
丹尼尔
答案 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>
手动启动它,框架会告诉您它是否有问题。