Sto provando a postare dati di immagine su una giunzione + RESTeasy endpoint e sto ricevendo un errore molto criptico durante l'avvio di JBoss. La richiesta HTTP che sto inviando ha un tipo di contenuto di multipart/form-data che ha una singola immagine/parte jpeg con il nome "attachment". Il mio metodo di servizio simile a questa:Invio di dati di modulo multipart a Seam + RESTeasy fallisce il marshalling su InputStream
@POST
@Path("uploadSymptomsImage/{appointmentGUID}")
@Consumes(MediaType.MULTIPART_FORM_DATA)
@Produces("application/json")
public String uploadSymptomsImage(@FormParam("attachment") InputStream fileInputStream,
@PathParam("appointmentGUID") String strAppointmentGUID)
{ ...
L'errore che ottengo è durante l'avvio:
Caused by: java.lang.RuntimeException: Unable to find a constructor that takes a String param or a valueOf() or fromString() method for javax.ws.rs.FormParam("attachment") on public java.lang.String com....AppointmentRestService.uploadSymptomsImage(java.io.InputStream,java.lang.String) for basetype: java.io.InputStream
at org.jboss.resteasy.core.StringParameterInjector.initialize(StringParameterInjector.java:206) [:]
at org.jboss.resteasy.core.StringParameterInjector.<init>(StringParameterInjector.java:57) [:]
at org.jboss.resteasy.core.FormParamInjector.<init>(FormParamInjector.java:22) [:]
La mia comprensione è che i tipi di supporto potrebbero essere schierate automaticamente InputStream. Ho anche provato java.io.File, java.io.Reader - entrambi con lo stesso errore. Quando sostituisco con byte [] o String ottengo un array di lunghezza zero, o null come valore del parametro.
Come procedere nel debug di questo? Inoltre, è possibile accedere alla richiesta non elaborata o ai valori pre-marshalling?
Qualsiasi suggerimento qui sarebbe molto apprezzato.
hi Tyler, avete risolto questo? Iv ha avuto un problema molto simile – DaveB
Hey Dave, scusa stavo solo sperimentando e non ho finito per dover scavare più a fondo. In bocca al lupo! – tyler