Liferay Portal 6.2 CE 如何提供Webservice
–供其它应用程序调用 、修改原始接口、新建接口调用原接口方法
背景:实现公告接口,其它手机端或应用端调用该接口显示Portal上的公告信息。
实现方法:
- 通过参考资料【1】新建portlet, 然后创建Service Builder 在刚才的Portlet上。
- 创建完成后,【ant - build Services】这时会创建相应的package.
- 我们只需要修改相应的XXXServiceImpl.java,添加相应的方法。下面是例子,此处调用公告相应的接口,原始方法有权限验证,我们可以在方法中加入:@AccessControlled(guestAccessEnabled=true)
允许guest访问。 - 改完XXXServiceImpl.java【ant - build Services】编译即可。
- 重新打包部署。
@AccessControlled(guestAccessEnabled=true) //Guest访问权限
public List<AnnouncementsEntry> getEntity(long companyId, String screenName ){
//跟据参数取当前用户信息
List<AnnouncementsEntry> results = null;
try {
User user = UserUtil.fetchByC_SN(companyId, screenName);
LinkedHashMap<Long, long[]> scopes = AnnouncementsUtil.getAnnouncementScopes(user.getUserId());
int total = 0;
int flagValue = AnnouncementsFlagConstants.NOT_HIDDEN;
results = AnnouncementsEntryLocalServiceUtil.getEntries(user.getUserId(), scopes, false, flagValue, 0, 1000);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return results;
}
访问方法:
- http://localhost:8080/api/jsonws 显示所有的接口,注意选择相应的Portlet.
- 选中后,输入相应的参数,调用即可,也可以在POSTMAN中调用。
参考资料:
【1】Liferay 6.1开发学习(四):Service Builder
【2】CREATING REMOTE SERVICES WITH SERVICE BUILDER