我需要扩展现有的 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
.
有没有办法真正做到这一点?