2015-08-12 1 views
1

Я работаю весной mvc с tomcat6. Я попытался загрузить файл и сделать это с помощью военного развертывания с помощью tomcat8.Загрузка файла не работает весной mvc и tomcat6

Но я получаю следующую ошибку при использовании той же войны с развертыванием tomcat6.

org.springframework.web.bind.MissingServletRequestParameterException: Required String parameter 'userId' is not present 

Мой полный код следующим образом,

Добавленные банки в ПОМ

<!-- Apache Commons Upload --> 
    <dependency> 
     <groupId>commons-fileupload</groupId> 
     <artifactId>commons-fileupload</artifactId> 
     <version>1.2.2</version> 
    </dependency> 

    <!-- Apache Commons Upload --> 
    <dependency> 
     <groupId>commons-io</groupId> 
     <artifactId>commons-io</artifactId> 
     <version>2.0.1</version> 
    </dependency> 

Добавлен боб для загрузки в applicationContext.xml

<bean id="multipartResolver" 
     class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> 
     <property name="maxUploadSize" value="10000000" /> 
    </bean> 

контроллер, возвращающие идента

public class UploadDocController extends AbstractController { 
@Resource 
private UserService userService; 


@Override 
protected ModelAndView handleRequestInternal(HttpServletRequest request, 
     HttpServletResponse response) throws Exception { 

    Long userId = userService.getLoggedInUser(request).getId(); 

    ModelAndView modelAndView = new ModelAndView(UploadDocView.uploadmain); 
    modelAndView.addObject("userId", userId); 
    return modelAndView; 
} 

}

JSP:

<form method="POST" enctype="multipart/form-data" action="upload.htm"> 
     File to upload: 
     <input type="file" name="file"><br /> 

     <input type="hidden" name="userId" value="${userId}"><br /> <br /> 

     <input type="submit" value="Upload"> 
    </form> 

FileUploadController.java

@Controller 
    public class FileUploadController { 

    @Resource 
    private CollectionsRepository collectionsRepository; 

    @RequestMapping(value="/upload", method=RequestMethod.GET) 
     public @ResponseBody String provideUploadInfo() { 
      return "You can upload a file by posting to this same URL."; 
     } 

     @RequestMapping(value="/upload.htm", method=RequestMethod.POST) 
     public ModelAndView handleFileUpload(@RequestParam(value ="userId") String userId, 
       @RequestParam(value ="file") MultipartFile file){ 
      System.out.println("userId--------"+userId); 
      if (!file.isEmpty()) { 
       try { 
        String filePath = "/home/ubuntu/analyzer/LOS/"; 
        byte[] bytes = file.getBytes(); 
        File newFile = new File(filePath+""+file.getOriginalFilename()); 
        BufferedOutputStream stream = 
          new BufferedOutputStream(new FileOutputStream(newFile)); 
        stream.write(bytes); 
        stream.close(); 

        List<BankStatementError> errorList = new ArrayList<BankStatementError>(); 

        Excelsheetreader esr = new Excelsheetreader(); 
        List<String> listaddSN = esr.GetCalculation(Long.parseLong(userId), filePath+""+file.getOriginalFilename()); 

        newFile.delete(); 

        for (int i = 0; i < listaddSN.size(); i++) { 
         String bank = listaddSN.get(i); 
         BankStatementError error = collectionsRepository.getErrorByBank(bank); 
         errorList.add(error); 
        } 

        ModelAndView modelAndView = new ModelAndView(UploadDocView.uploadsuccess); 
        modelAndView.addObject("errorList", errorList); 
        return modelAndView; 
       } catch (Exception e) { 
        ModelAndView modelAndView = new ModelAndView(UploadDocView.uploadexecption); 
        return modelAndView; 
       } 
      } else { 
       ModelAndView modelAndView = new ModelAndView(UploadDocView.uploadempty); 
       return modelAndView; 
      } 
     } 
    } 

Ошибка я получаю

org.springframework.web.bind.MissingServletRequestParameterException: Required String parameter 'userId' is not present 

Есть ли другой способ сделать это с помощью tomcat6? надеюсь, кто-то предложит в этом.

Заранее спасибо ..

скриншот ..

enter image description here

ответ

1

время, когда вы вызываете файл Jsp параметр не был присоединен с вами ответ.

See-

<input type="hidden" name="userId" value="${userId}"><br /> <br /> 

здесь вы пытаетесь получить доступ к значению USERID, но не может быть наличие параметра, который вы ищете.

поэтому возможно добавление параметра с ответом приведет к удалению ошибки.

+0

Но userId доступен на странице, в то время как я проверяю элемент в браузере. – DevGo

+0

, пожалуйста, обновите это с помощью снимка экрана. –

+0

обновил мой код, пожалуйста, посмотрите сейчас. – DevGo

Смежные вопросы