【发布时间】:2018-06-27 09:29:26
【问题描述】:
我需要记录传入的 REST 请求 (xml)。 所以我创建了一个
public class RequestWrapper extends HttpServletRequestWrapper {
private String _body;
public RequestWrapper(HttpServletRequest request) throws IOException {
super(request);
_body = "";
BufferedReader bufferedReader = request.getReader();
String line;
while ((line = bufferedReader.readLine()) != null){
_body += line;
}
}
现在我使用过滤器来注销传入的请求:
class XmlogFilterFilters {
def filters = {
all(controller:'*', action:'*') {
before = {
RequestWrapper wrappedRequest = new RequestWrapper(request)
log.info(wrappedRequest.reader.text)
}
}
}
这会按预期记录传入的请求。
但现在在我的控制器中,请求是空的,不能用于构建我的域对象:
class InquiryHandlerController {
def save(Inquiry inquiryInstance) {
... *** inquiryInstance is null here
}
}
我猜问题是,这个请求已经在RequestWrapper 中被读取,因此无法在magic requestToDomain 转换中再次读取。
那么我怎样才能将新的RequestWrapper Object 而不是原来的request 传递给控制器呢?
【问题讨论】:
标签: grails grails-2.0