json リクエストで DDL レコードを取得する必要があります。Liferay コアにはそのようなサービスはありません。getRecordSet のみ。
新しいメソッドを追加する DDLRecordSetService フックを作成しgetRecords(recordSetId)
ます。私のコード:
public class ExtDDLRecordSetLocalServiceImpl extends DDLRecordSetServiceWrapper {
public ExtDDLRecordSetLocalServiceImpl(DDLRecordSetService ddlRecordSetService) {
super(ddlRecordSetService);
}
public com.liferay.portlet.dynamicdatalists.model.DDLRecordSet getRecordSet(long recordSetId) throws com.liferay.portal.kernel.exception.PortalException, com.liferay.portal.kernel.exception.SystemException{
System.out.println("------override getRecordSet ");
DDLRecordSet set = super.getRecordSet(recordSetId+10);
return set;
}
@JSONWebService
public List<DDLRecord> getRecords(long recordSetId) throws SystemException, PortalException {
System.out.println("------override getRecords");
return getRecordSet(recordSetId).getRecords();
}
}
getRecordSet() をオーバーライドできますが、URL 経由で getRecordSet() メソッドにアクセスできません。
私は得る:
{"exception":"No JSON web service action associated with path /ddlrecordset/get-records and method GET for /"}
JSONWebService 経由で一連のレコードを返すことができる新しい DDLRecordSetService を追加するにはどうすればよいですか?