Carga de archivos con Angular2 a API REST

En realidad, estoy trabajando en una API Spring REST con una interfaz codificada en Angular 2.

Mi problema es que no puedo cargar un archivo con Angular 2.

Mis recursos web en Java es que:

@RequestMapping(method = RequestMethod.POST, value = "/upload")
public String handleFileUpload(@RequestParam MultipartFile file) {
    //Dosomething 
}

Y funciona perfectamente cuando lo llamo a través de la solicitud de URL con el encabezado Auth, etc. (con la extensión Advanced Rest Client para Chrome)

Prueba: (todo funciona bien en ese caso)

Agregué el

<bean id="multipartResolver"
      class="org.springframework.web.multipart.commons.CommonsMultipartResolver" />

Spring config file y la dependencia de Pom

<dependency>
    <groupId>commons-fileupload</groupId>
    <artifactId>commons-fileupload</artifactId>
    <version>1.2</version>
</dependency>

PERO cuando trato de hacer lo mismo con un formulario web:

<input type="file" #files (change)="change(files)"/>
<pre>{{fileContents$|async}}</pre>

Con el método (cambio):

change(file) {
    let formData = new FormData();
    formData.append("file", file);
    console.log(formData);
    let headers = new Headers({
        'Authorization': 'Bearer ' + this.token,
        'Content-Type': 'multipart/form-data'
    });
    this.http.post(this.url, formData, {headers}).map(res => res.json()).subscribe((data) => console.log(data));
    /*
    Observable.fromPromise(fetch(this.url,
        {method: 'post', body: formData},
        {headers: this.headers}
    )).subscribe(()=>console.log('done'));
    */
}

Mi servicio web me devuelve un error 500, con eso en los registros de Tomcat:http://pastebin.com/PGdcFUQb

Probé el'Content-Type': undefined método también pero sin éxito (el servicio web me devuelve un error 415 en ese caso.

¿Alguien puede ayudarme a descubrir cuál es el problema?

Problema resuelto, actualizaré esa pregunta más tarde con mi código :) pero, eche un vistazo al plunker, está funcionando perfectamente bien. Gracias.

Respuestas a la pregunta(8)

Su respuesta a la pregunta