2012-06-24 4 views
10

Eine Url, Credentials funktioniert in RestClient UI sowie mit Curl, wo ich bekomme "500" Fehler beim Zugriff die gleiche über Spring RestTemplate .Spring RestTemplate gibt "500" Fehler aber gleiche URL, credails funktioniert in RestClient und Curl

Ich verwende den folgenden Code ein:

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

Bitte teilen Sie mir Ihre Anregungen oder Kommentare kennen das Problem zu beheben.

+0

Hat wirklich Ihre Employee-Klasse mit einem kleinen e beginnen? –

+0

Entschuldigung, es ist ein Schreibfehler. Es ist Employee.class – Kathir

+0

500 ist ein Serverfehler; Gibt es irgendwelche Details im Hauptteil der Antwort oder irgendetwas Nützliches im Protokoll des Servers? –

Antwort

7

Ich würde vorschlagen, Ihre HttpComponentsClientHttpRequestFactory und übergeben es an Ihre RestTemplate wie unten beschrieben, erstellen:

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

RestTemplate restTemplate = new RestTemplate(requestFactory); 

Auf diese Weise, Sie würden serverseitige Probleme vermeiden (wie z de 500) beim Testen Ihrer Anwendung.

Ich hatte das gleiche Problem, das in meiner lokalen Umgebung und nicht auf dem Server funktionierte.

Es ist eine gute Praxis HttpClients.createDefault() auf Ihre HttpComponentsClientHttpRequestFactory passieren, während es da standardmäßig die Konstruktion verwendet dieses Werk Systemeigenschaften HttpClient für Ihre Fabrik zu schaffen und das kann eine Menge Schmerz in realen Server-Umgebung verursachen. Sie können auch Ihre benutzerdefinierte HttpClient übergeben.

+0

Hallo, was ist das HttpClients-Objekt bitte? Ich kann keine Abhängigkeit finden, die mich dazu bringt, dies zu importieren. Ich versuche RestTemplateXhrTransport zu verwenden, um mich mit einem Websocket zu verbinden, und ich bekomme den Fehler oben. danke –

+0

Entschuldigung! Es ist ein bisschen spät zu beantworten, aber soweit ich mich erinnere, gehörte es zu einem der folgenden Projekte (basierend auf Priorität). Sie können jedes versuchen und sehen, wenn Sie Compilerfehler erhalten; \t org.spring \t feder web \t .... Oder \t org.apache.httpcomponents \t Httpclient \t .... Oder \t commons-Httpclient \t commons-Httpclient \t ... Youness

+0

Können Sie erklären, warum diese Lösung funktioniert? –

0

arbeitet Below feinen

Für Beitrag:

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

url ist: String - Rest api URL parametersMap - MultiValueMap Mitarbeiter - Objekt, das aus der JSON-Antwort konvertiert werden muss

Verwandte Themen