rest - 使用Restful-API插件上传Grails文件

标签 rest grails plugins groovy

我的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/

相关文章:

regex - 正则表达式从Groovy GString中删除\“?

jquery插件: converting functions into a plugin?

java - 防止 spring-data-rest 中的 HTTP 方法

c# - 反序列化动态对象

grails - 从 View 传递grails选择值到 Controller ?

hibernate - Grails-乐观锁定-两次可能的更新之间的时间

jQuery 插件 : Colorpicker

linux - 在 qtcreator 中使用 doxygen

rest - 云到设备 Azure IoT REST API

java - 如何处理 RESTful 应用程序中的竞争条件?