2013-02-14 4 views
3

Я работаю с grails 1.3.7, и у меня странная ошибка. Это мой код для загрузки файла:Grails upload file Исключение, вызванное springsecurity

def editAvatar = { 
      def uploadedAvatar = request.getFile("uploadedAvatar"); 
    if(!uploadedAvatar?.isEmpty()) { 
     clientService.saveUploadedAvatar(uploadedAvatar, basePath); 
     render 'avaterUdated'; 
    } else { 
     render(contentType:"text/json", encoding:"UTF-8") { 
      [valid:false, error: "some error"] 
     } 
    } 

В среде разработки все работает отлично, но в рабочем режиме у меня есть thiw исключение:

org.codehaus.groovy.runtime.typehandling.GroovyCastException: 
Cannot cast object '[email protected]'with class 'org.springframework.security.web.firewall.RequestWrapper' to class 'org.springframework.web.multipart.MultipartHttpServletRequest' 
at ru.pscb.web.grb.ui.UserProfileController$_closure6.doCall(UserProfileController.groovy:80) 

Я также tryied этот код:

MultipartHttpServletRequest mpr = (MultipartHttpServletRequest)request; 
    def uploadedAvatar = request.getFile("uploadedAvatar"); 

Но это тоже не работает.

Я использую sprigsecurity-core1.2 и grails 1.3.7/Я не могу это обновить.

Спасибо Вам за любой ответ

ответ

1

Спасибо за это - спустя 4 года, и вы просто спасли меня. В вашем коде проблема заключается в том, что вы отправляете запрос на MultipartHttpServletRequest, но тогда вы не устанавливаете uploadAvatar в эту литую версию запроса (mpr). Попробуйте изменить свою последнюю строку кода на:

def uploadedAvatar = mpr.getFile("uploadedAvatar"); 

Спасибо за помощь!

+0

Удивительный! Спасибо вам! – Mikhail