Arhn - архитектура программирования

Загрузка файла Grails с помощью плагина restful-api

Мой файл 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".

Метод create() в эксплуатации:

def create(Map params){

print params
File f = params.file

return ["File Uploaded!"]
}

Любые мысли по этому поводу, пожалуйста?

09.09.2015

Ответы:


1

Проблем с кодом не было.

В запросе, отправляемом клиентом POSTMAN REST, был объявлен Content-Type.

Обратите внимание, что мы не должны упоминать Content-Type даже при отправке запроса multipart/form-data.

Это сработало.

11.09.2015
Новые материалы

Коллекции публикаций по глубокому обучению
Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

Представляем: Pepita
Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

Советы по коду Laravel #2
1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

3 способа решить квадратное уравнение (3-й мой любимый) -
1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

Создание VR-миров с A-Frame
Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

Демистификация рекурсии
КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..