2016-09-10 4 views
0

Ich versuche eine POC von Spring-basierten REST-Service, um eine Datei nach dem Tutorial von der tutorial hochladen. Jedoch wenn ich versuche, um die Datei zu laden verwenden wir die folgende Störung erhaltenFrühling 4 REST Service - Getting 404

Fehler 404: Ausnahme javax.servlet.UnavailableException: SRVE0319E: Für den [SpringRestWebservice] Servlet, org.springframework.web.servlet.handler .DispatcherServletWebRequest Servlet-Klasse wurde gefunden, aber ein Fehler bei der Ressourceninjektion ist aufgetreten. java.lang.NoSuchMethodException. org.springframework.web.servlet.handler.DispatcherServletWebRequest()

Controller-Code wird unter

@RestController 
@RequestMapping(value = "/restService") 
// Max uploaded file size (here it is 20 MB) 
@MultipartConfig(fileSizeThreshold = 20971520) 
public class RestServiceController { 

@RequestMapping(value = "/fileUpload") 
public String uploadFile(@RequestParam("uploadedFile") MultipartFile uploadedFileRef){ 
    System.out.println("Entering RestServiceController.uploadFile"); 

    // Get name of uploaded file. 
    String fileName = uploadedFileRef.getOriginalFilename(); 
    System.out.println("File to upload : " + fileName); 

    // Path where the uploaded file will be stored. 
    String path = "C:/SpringRestService/" + fileName; 

    // This buffer will store the data read from 'uploadedFileRef' 
    byte[] buffer = new byte[1000]; 
    FileInputStream reader = null; 
    //FileOutputStream writer = null; 
    int totalBytes = 0; 

    try { 
     // Now create the output file on the server. 
     //File outputFile = new File(path); 

     //outputFile.createNewFile(); 

     // Create the input stream to uploaded file to read data from it. 
     reader = (FileInputStream) uploadedFileRef.getInputStream(); 

     // Create writer for 'outputFile' to write data read from 
     // 'uploadedFileRef' 
     //writer = new FileOutputStream(outputFile); 

     // Iteratively read data from 'uploadedFileRef' and write to 
     // 'outputFile';    
     int bytesRead = 0; 
     while ((bytesRead = reader.read(buffer)) != -1) { 
      //writer.write(buffer); 
      totalBytes += bytesRead; 
     } 
    } catch (FileNotFoundException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } finally { 
     try { 
      reader.close(); 
      //writer.close(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
    } 

    System.out.println("Leaving RestServiceController.uploadFile"); 
    return "File uploaded successfully! Total Bytes Read="+totalBytes; 
} 
} 

web.xml Schnipsel

<servlet> 
<servlet-name>SpringRestWebservice</servlet-name> 
<servlet-class>org.springframework.web.servlet.handler.DispatcherServletWebRequest</servlet-class> 
</servlet> 
<servlet-mapping> 
<servlet-name>SpringRestWebservice</servlet-name> 
<url-pattern>/*</url-pattern> 
</servlet-mapping> 

gegeben HTML-Inhalt zum Übermitteln der Dateiupload

<body> 
<form method="POST" enctype="multipart/form-data" 
    action="http://localhost:9080/SpringRestWebservice/restService/fileUpload"> 
File to upload: <input type="file" name="uploadedFile"><br /> 
<input type="submit" value="Upload"> 
</form> 
</body> 

Umwelt

Eclipse Neon Release (4.6.0) 
Spring 4.2.5 
WAS Liberty v16 

nicht sicher, was ich fehlt? Bitte helfen

Antwort

0

Fand heraus, ich hatte Frühjahr Klasse zu verwenden

<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 

statt

<servlet-class>org.springframework.web.servlet.handler.DispatcherServletWebRequest</servlet-class> 

in web.xml