0
的Liferay Web服務我需要擴展現有的Liferay Web服務(使用Service Builder創建)以處理額外的可選參數。構建具有可選參數
使用Service Builder中,您必須指定方法簽名內的每個參數:
public String getList(String param1){ .. }
這將創建一個get-list
Web服務接受一個名爲param1
參數。您在撥打電話時必須指定每個參數,否則呼叫將失敗。如果您需要可選參數,只需傳遞一個空值並處理代碼中缺少的參數即可。
我的問題是向後兼容性:此Web服務已被移動應用程序使用,我無法更改該應用程序所做的調用。必須處理附加參數而不更改方法簽名。
考慮看看BaseServiceImpl,我試圖獲取參數以這樣的方式
HttpServletRequest request = com.liferay.util.axis.ServletUtil.getRequest();
String value = ParamUtil.getString(request, "param-name");
但它拋出一個NoClassDefException
關於com.liferay.util.axis.ServletUtil
。
有沒有辦法實際做到這一點?
這解決了我確切的問題,但我想知道:如果我需要更多的參數,它們應該是所有自選? – dipanda
這是覆蓋和擴展方法的一般方法。根據您的要求,您可以添加重寫的方法,也可以更新參數(如果該方法未從衆多文件中調用)。 –