我的Config.groovy文件显示为:
resource 'ktm-documents' config{
serviceName ='docCompositeService'
// methods = ['list']
representation {
mediaTypes = ["application/vnd.hedtech.v1+json", "application/json", "multipart/form-data"]
marshallers{
jsonBeanMarshaller{
supports net.hedtech.banner.decorator.DocDecorator
}
jsonBeanMarshaller{
supports net.hedtech.banner.decorator.Indexes
}
}
extractor = new net.hedtech.banner.extractor.DocExtractor()
}
}
提取器是:
class DocExtractor implements RequestExtractor{
@Override
Map extract(HttpServletRequest request) {
print("========== My EXTRACTOR ========")
MultipartHttpServletRequest mpr
Map responseMap = [:]
print request
try {
print "Here's abc " + request.getParameter("abc")
mpr = (MultipartHttpServletRequest) request;
CommonsMultipartFile file = (CommonsMultipartFile) mpr.getFile("file");
if (file.isEmpty()) {
responseMap.put("error","file empty hai")
} else {
responseMap.put("file", file)
}
print responseMap.values()
} catch (Exception e) {
e.printStackTrace()
}
}
}
尝试在服务的create()内提取从提取器中的请求中提取的文件时,出现“无法获取null的属性'file'” 错误。
服务中的create()方法:
def create(Map params){
print params
File f = params.file
return ["File Uploaded!"]
}
请问对此有何想法?
最佳答案
代码没有问题。
从POSTMAN REST客户端发送的请求中声明了内容类型。
请注意,即使在通过多部分/表单数据请求进行发送时,我们也不应提及内容类型。
那行得通。
关于rest - 使用Restful-API插件上传Grails文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32477513/