Spring RestTemplate donne l'erreur "500" mais la même URL, credentails fonctionne dans RestClient et Curl
Une Url, les informations d'Identification des œuvres dans RestClient de l'INTERFACE utilisateur ainsi qu'avec Curl, alors que je suis "500" erreur lors de l'accès via le Printemps RestTemplate.
Je suis en utilisant le code suivant:
MultiValueMap<String, Object> map = new LinkedMultiValueMap<String, Object>();
map.add("name", user);
map.add("password", password);
restTemplate.postForObject(url, request, Employee.class, map);
S'il vous plaît laissez-moi savoir vos commentaires ou suggestions pour résoudre le problème.
source d'informationauteur Kathir
Vous devez vous connecter pour publier un commentaire.
Je vous propose de créer votre
HttpComponentsClientHttpRequestFactory
et de le passer à votreRestTemplate
comme décrit ci-dessous:De cette manière, vous voulez éviter des problèmes côté serveur (comme face code d'erreur 500) lors du test de votre application.
J'ai eu le même problème qui a travaillé dans mon environnement local et pas sur le serveur.
C'est une bonne pratique pour passer
HttpClients.createDefault()
à votreHttpComponentsClientHttpRequestFactory
lors de la construction depuis par défaut, cette usine utilise les propriétés du système pour créerHttpClient
pour votre usine et qui peut causer beaucoup de douleur dans la vraie environnement de serveur. Vous pouvez également passer votre personnaliséHttpClient
.donc, je fixe
http://www.manning-sandbox.com/message.jspa?messageID=119733
Vous êtes de passage le nom et le mot de passe que l'uri de la variable:
docs.printemps.io
Si vous aviez une url de la forme:
http://yourhost:8080/dosomethingwithemployee/name/password et vous avez extrait le nom de&mot de passe à partir de l'url elle-même, il n'aurait probablement travailler.
Cependant, je pense que vous avez essayé d'envoyer un nom et un mot de passe dans le corps de la requête:
Ci-dessous fonctionne très bien
Post:
restTemplate.postForObject(url, parametersMap, Employee.class);
url : String - api rest URL
parametersMap - MultiValueMap
L'employé de l'objet qui doit être convertie à partir de la réponse JSON
J'ai aussi fait face à une situation où la réponse du serveur a été "500 Internal server error"
Si j'ai reçu une réponse de réussite de Facteur pour la même valeur de paramètre.
Donc, le problème n'était pas à côté serveur.
Le problème était de la faute de frappe dans le nom du paramètre, incompatibilité de l'orthographe entre le paramètre d'application et le serveur de paramètre
Espère que quelqu'un de nouveau, comme moi, d'obtenir de l'aide de ce.