Ho lavorato in un servizio web che consuma e produce file JSON utilizzando Apache CXF in combinazione con Jackson.
Tuttavia, uno dei metodi del servizio dovrebbe essere in grado di salvare un'immagine caricata da un'applicazione mobile che rende una richiesta POST multipart/form-data al mio webservice, e non so come trattare questo tipo di tipo di contenuto all'interno il mio contesto. Generalmente creiamo oggetti "Richiesta" e "Risposta" per consumare e produrre il JSON, tuttavia temo che questo non funzioni in questo caso.Consumare un multipart/form-data tramite RESTful CXF
Questo è il formato della richiesta:
Content-type: multipart/form-data
"Description": text/plain
"Path": text/plain
"Image": image/jpeg
Come si consuma correttamente questo tipo di richiesta e salvare il lato server di immagini?
[EDIT]
sono riuscito a consumare multipart/form-data utilizzando questo:
public returnType savePicture(
@Multipart(value = "mode", type = "text/plain") String mode,
@Multipart(value = "type", type = "text/plain") String type,
@Multipart(value = "path", type = "text/plain") String path
@Multipart(value = "image", type = "image/jpeg") Attachment image
)
{
Tuttavia, quando si cerca di consumare la seguente richiesta POST:
Content-type: multipart/form-data, boundary=AaB03x
--AaB03x
content-disposition: form-data; name="mode"
T
--AaB03x
content-disposition: form-data; name="type"
M
--AaB03x
content-disposition: form-data; name="path"
c:/img/
--AaB03x
content-disposition: form-data; name="image"; filename="image.jpg"
Content-Type: image/jpeg
Content-Transfer-Encoding: binary
imgdata
--AaB03x--
Ho ricevuto il seguente errore:
javax.ws.rs.BadRequestException: org.apache.cxf.jaxrs.utils.multipart.MultipartReadException: No multipart with content id type found, request content type : multipart/form-data;boundary=AaB03x
Quando ho consumano solo modalità, per esempio, funziona benissimo. Si interrompe solo per 2 o più parametri. Qualche idea sul perché è sbagliato?
1. http://stackoverflow.com/questions/10246579/jax-rs-with-cxf-rest-assured-handling-multiparam-file-upload 2. http://stackoverflow.com/questions/8913382/uploading-multiple-files-and- metadata-with-cxf Consulta questi – Sikorski
3. http://cxf.apache.org/docs/jax-rs-multiparts.html – Sikorski
Grazie per i link, cercherò di capire qualcosa di utile da loro. Sono riuscito a consumare il testo/plain, ho appena avuto problemi con l'immagine ora, ma non ho provato con inputStream come suggerisce il link 1. – fcm