Ho la seguente risorsa (implementato utilizzando primavera 4.05.RELEASE), che accetta un file e un oggetto JSON:Come elaborare una richiesta multipart composta da un file e un oggetto JSON nel servizio restful di Spring?
(PS activityTemplate è una classe di entità serializzabile)
...
@RequestMapping(value="/create", method=RequestMethod.POST)
public @ResponseBody ActivityTemplate createActivityTemplate(
@RequestPart ActivityTemplate activityTemplate, @RequestPart MultipartFile jarFile)
{
//process the file and JSON
}
...
e questa è la forma che sto testando da:
<form method="POST" enctype="multipart/form-data"
action="http://localhost:8080/activityTemplates/create">
JSON: <input type="text" name="activityTemplate" value='/* the JSON object*/'><br />
File to upload: <input type="file" name="file">
<input type="submit" value="Upload">
</form>
e questo è l'errore che ottengo:
There was an unexpected error (type=Unsupported Media Type, status=415).
Content type 'application/octet-stream' not supported
Quindi, come devo fare in modo che la risorsa accetti l'oggetto JSON come parte della richiesta multipart o dovrei inviare il modulo in un modo diverso?
è possibile ottenere oggetto json come parametro di richiesta per la richiesta. –
@DarshanLila con l'utilizzo del parametro request, vede l'oggetto JSON come una stringa e non lo converte nell'oggetto corrispondente fuori dalla scatola. – Sami
C'è una mancata corrispondenza tra il nome dell'ingresso del file ('file') e il nome del parametro annotato nella firma (' jarFile'). Questo deve fare qualcosa con il tuo problema? – miw