0%

Liferay添加自定义服务层方法

本文将介绍在service层添加自定义方法。

开发环境

  • OS:ubuntu 12.04 64位
  • Liferay Portal:6.2.0-ce-ga1

创建portlet

按照Liferay Service Builder一文中的步骤创建拥有一个Book实体的servicebuilder-portlet

添加服务层方法

BookLocalServiceImpl.java中添加一个addBook方法,以下为方法代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
package com.zhaiyz.service.impl;

import java.util.Date;

import com.zhaiyz.model.Book;
import com.zhaiyz.service.base.BookLocalServiceBaseImpl;
import com.liferay.counter.service.CounterLocalServiceUtil;
import com.liferay.portal.kernel.exception.PortalException;
import com.liferay.portal.kernel.exception.SystemException;
.
.
.
public class BookLocalServiceImpl extends BookLocalServiceBaseImpl {
public Book addBook(long companyId, long groupId, long userId, String title) throws PortalException, SystemException {
long bookId = CounterLocalServiceUtil.increment(Book.class.getName());
Date now = new Date();
Book book = bookPersistence.create(bookId);

book.setCompanyId(companyId);
book.setGroupId(groupId);
book.setUserId(userId);
book.setTitle(title);
book.setCreateDate(now);
book.setModifiedDate(now);

return bookPersistence.add(book);
}
}

BookServiceImpl中添加完方法还不能直接使用。需要运行以下命令生成相关的代码再使用BookLocalServiceUtil类使用添加的方法。为了防止出现Exception in thread "main" java.lang.OutOfMemoryError: PermGen space异常,需要设置MAVEN_OPTS参数。

1
2
MAVEN_OPTS="-Xmx512m -XX:MaxPermSize=256m"
mvn liferay:build-service

liferay:build-service只是生成代码,并不会编译,如果要验证生成的代码是否能编译通过,需要执行mvn package命令。所有命令执行成功之后,就可以在业务层使用新添加的方法:

1
BookLocalServiceUtil.addBook(companyId, groupId, userId, title);

参考文章


全文完