Come si invia più di un parametro nel corpo della richiesta in una richiesta POST?CXF JAXRS - Come caricare più di un parametro
@POST
@Consumes("multipart/form-data")
@Produces("application/json")
public String addForm1(@FormParam("i1") Integer i1, @FormParam("i2") Integer i2);
Sopra codice restituisce HTTP 415.
Sostituzione @FormParam
con @Multipart
risultati in Resource method has more than one parameter representing a request body
errore, come illustrato di seguito.
SEVERE: Resource method service.rs.TestService.postData2 has more than one parameter representing a request body
Exception in thread "main" org.apache.cxf.jaxrs.client.ClientWebApplicationException: Resource method service.rs.TestService.postData2 has more than one parameter representing a request body
at org.apache.cxf.jaxrs.client.ClientProxyImpl.reportInvalidResourceMethod(ClientProxyImpl.java:546)
at org.apache.cxf.jaxrs.client.ClientProxyImpl.getParametersInfo(ClientProxyImpl.java:214)
at org.apache.cxf.jaxrs.client.ClientProxyImpl.invoke(ClientProxyImpl.java:138)
at $Proxy20.postData2(Unknown Source)
at service.TestServiceClient.main(TestServiceClient.java:82)
Inoltre, che cosa devo fare per passare più tipi complessi come List<Map<String, String>>' or 'List<MyNestedCustomObject>
in un metodo POST? Sono in grado di passare tale parametro utilizzando JAXB
e annotandolo con @XmlJavaTypeAdapter
, ma suppongo che non funzioni in caso di passaggio di più parametri? Sarei obbligato a definire i miei lettori del body reader &? Qualsiasi codice di esempio sarebbe utile.
Grazie
Rimozione '@ Consumes' aiutato. Tuttavia, ho capito che ho bisogno di passare i parametri '@ Multipart' dato che i miei parametri non sono semplici. Ho bisogno di POST 2 parametri di questi tipi: 1. 'Elenco
@domino Hmm, stai uscendo dall'area che conosco abbastanza bene da consigliarti direttamente. http://cxf.apache.org/docs/jax-rs-multiparts.html dice di usare use '@ Multipart' _or_ una firma di' List '. Quale versione di CXF stai usando? –
Dato che non ho a che fare con file/allegati in quanto tali, ho provato '@ Multipart'. Verificherà se 'Lista' può essere di aiuto. Sto usando 2.5.2. Ci sono ** esempi su quella pagina che sembrano suggerire che dovrebbe essere diretto al POST di più parametri usando '@ Multipart'. Immagino che mi manchi qualcosa. –
domino