2012-06-24 10 views
10

Una URL, credenciales funciona en RestClient UI, así como con Curl, donde como me sale el error "500" cuando accedo a la misma a través de Spring RestTemplate .Spring RestTemplate da error "500" pero la misma URL, credenciales funciona en RestClient y Curl

estoy usando el siguiente código:

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

Por favor, hágamelo saber sus sugerencias o comentarios para solucionar el problema.

+0

¿Su clase Employee realmente empezar con una letra minúscula e? –

+0

lo siento es un error tipográfico ... Es Employee.class – Kathir

+0

500 es un error del servidor; ¿Hay algún detalle en el cuerpo de la respuesta o algo útil en el registro del servidor? –

Respuesta

7

sugeriría a crear su HttpComponentsClientHttpRequestFactory y pasarlo a su RestTemplate como se describe a continuación:

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

RestTemplate restTemplate = new RestTemplate(requestFactory); 

De esta manera, evitaría los problemas del lado del servidor (como enfrentar el error co de 500) al probar su aplicación.

Tuve el mismo problema que funcionó en mi entorno local y no en el servidor.

es una buena práctica para pasar HttpClients.createDefault() a su HttpComponentsClientHttpRequestFactory al construirlas ya que por defecto, esta fábrica utiliza las propiedades del sistema para crear HttpClient para su fábrica y que puede causar mucho dolor en el entorno de servidor real. También puede pasar su medida personalizada HttpClient.

+0

hola, ¿cuál es el objeto HttpClients por favor? No encuentro ninguna dependencia de maven que me permita importar esto. Estoy tratando de usar RestTemplateXhrTransport para conectarme a un websocket y recibo el error anterior. gracias –

+0

¡Lo siento! Es un poco tarde para responder, pero por lo que recuerdo, pertenecía a uno de los siguientes proyectos (según prioridad). Puede probar cada uno y ver si obtiene un error de compilación; \t org.Spring Framework \t primavera en la web \t .... O \t org.apache.httpcomponents \t httpclient \t .... O \t Commons-httpclient \t Commons-httpclient \t ... Youness

+0

Puede explicar por qué esta solución funciona? –

0

continuación funciona bien

Para la publicación:

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

url es: String - URL REST API parametersMap - MultiValueMap Empleado - objeto que necesita ser convertido de la respuesta JSON

Cuestiones relacionadas