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