2012-06-24 19 views
10

Un URL, le credenziali funzionano nell'interfaccia utente RestClient e con Curl dove ottengo l'errore "500" quando si accede allo stesso tramite Spring RestTemplate .Spring RestTemplate restituisce l'errore "500" ma lo stesso URL, credentails funziona in RestClient e Curl

Sto usando il seguente codice:

MultiValueMap<String, Object> map = new LinkedMultiValueMap<String, Object>(); 
map.add("name", user); 
map.add("password", password); 
restTemplate.postForObject(url, request, Employee.class, map); 

prega fatemi sapere i vostri suggerimenti o commenti per risolvere il problema.

+0

La vostra classe Employee davvero iniziare con una lettera minuscola e? –

+0

scusa è un errore di battitura..È Employee.class – Kathir

+0

500 è un errore del server; c'è qualche dettaglio nel corpo della risposta o qualcosa di utile nel registro del server? –

risposta

7

vorrei suggerire di creare il vostro HttpComponentsClientHttpRequestFactory e passarlo al vostro RestTemplate come descritto di seguito:

ClientHttpRequestFactory requestFactory = new  
     HttpComponentsClientHttpRequestFactory(HttpClients.createDefault()); 

RestTemplate restTemplate = new RestTemplate(requestFactory); 

In questo modo, eviterai problemi sul lato server (come l'errore co de 500) durante il test dell'applicazione.

Ho avuto lo stesso problema che ha funzionato nel mio ambiente locale e non sul server.

Si tratta di una buona pratica di passare HttpClients.createDefault() al tuo HttpComponentsClientHttpRequestFactory, mentre la costruzione da quando per impostazione predefinita, questa fabbrica utilizza le proprietà di sistema per creare HttpClient per la fabbrica e che può causare un sacco di dolore in ambiente server vero e proprio. Puoi anche passare la tua dogana HttpClient.

+0

ciao, qual è l'oggetto HttpClients per favore? Non riesco a trovare alcuna dipendenza di tipo Maven che mi consenta di importarlo. Sto cercando di utilizzare RestTemplateXhrTransport per connettersi a un websocket e sto ricevendo l'errore sopra. grazie –

+0

Siamo spiacenti! È un po 'tardi per rispondere, ma per quanto mi ricordo, è appartenuto a uno dei seguenti progetti (basato sulla priorità). Puoi provare ciascuno e vedere se ottieni l'errore del compilatore; \t org.Spring Framework \t primavera-web \t .... O \t org.apache.httpcomponents \t httpclient \t .... O \t commons-HttpClient \t commons-HttpClient \t ... Youness

+0

si può spiegare il motivo per cui questa soluzione funziona? –

0

seguito funziona bene

Per Messaggio:

restTemplate.postForObject (url, parametersMap, Employee.class);

url è: String - URL riposo api parametersMap - MultiValueMap dipendenti - oggetto deve essere convertito dalla risposta JSON

Problemi correlati