Foros del Web » Programación para mayores de 30 ;) » Java »

Spring MVC y RestTemplate

Estas en el tema de Spring MVC y RestTemplate en el foro de Java en Foros del Web. Hola a todos. estoy iniciando con java spring pero tengo un problema que no he podido resolver, a ver si alguien por aquí me puede ...
  #1 (permalink)  
Antiguo 04/09/2014, 11:16
Avatar de lair  
Fecha de Ingreso: enero-2009
Ubicación: header('Location: Morelia");
Mensajes: 1.052
Antigüedad: 15 años, 3 meses
Puntos: 46
Spring MVC y RestTemplate

Hola a todos.

estoy iniciando con java spring pero tengo un problema que no he podido resolver, a ver si alguien por aquí me puede ayudar.

el caso es el siguiente:

tengo una aplicación en mvc con spring en la cual estoy intentando hacer una llamada a FB de la siguiente manera:

Código Java:
Ver original
  1. Page page = restTemplate
  2.                 .getForObject(
  3.                     String.format(
  4.                         "https://graph.facebook.com/v2.1/%s/?fields=%s&access_token=%s",
  5.                         objectId,
  6.                         query,
  7.                         accessToken
  8.                     ),
  9.                     Page.class
  10.                 );

pero me marca este error:
Cita:
HTTP Status 500 - Request processing failed; nested exception is org.springframework.web.client.RestClientException : Could not extract response: no suitable HttpMessageConverter found for response type [com.Package.Request.Page] and content type [application/json;charset=UTF-8]
esto desde localhost:8080/....

el detalle es que si corro esto desde otro projecto, obtenido de spring.io y ejecutado desde consola ( directamente el jar con la misma petición ) funciona correctamente.

alguien puede guiarme con respecto al error.

la clase que definì para recibir la respuesta esta de la siguiente manera:
Código Java:
Ver original
  1. @JsonIgnoreProperties(ignoreUnknown = true)
  2. public class Page  {
  3.    
  4.     private Comment comments;
  5.     private Like likes;
  6.     private Date created_time;
  7.     private String id;
  8.    
  9.     public Comment getComments() {
  10.         return comments;
  11.     }
  12.  
  13.     public Date getCreated_time() {
  14.         return created_time;
  15.     }
  16.     public Like getLikes() {
  17.         return likes;
  18.     }
  19.     public String getId() {
  20.         return id;
  21.     }
  22. }
Código Java:
Ver original
  1. @JsonIgnoreProperties(ignoreUnknown = true)
  2. public class Comment {
  3.    
  4.     private Summary summary;
  5.  
  6.     public Summary getSummary() {
  7.         return summary;
  8.     }
  9.  
  10.     @JsonIgnoreProperties(ignoreUnknown = true)
  11.     public class Summary{
  12.         private String order;
  13.         private Integer total_count;
  14.        
  15.         public Integer getTotal_count() {
  16.             return total_count;
  17.         }
  18.  
  19.         public String getOrder(){ return this.order; }
  20.     }
  21.  
  22. }
Código Java:
Ver original
  1. @JsonIgnoreProperties(ignoreUnknown = true)
  2. public class Like {
  3.    
  4.    
  5.    
  6.     public Summary getSummary() {
  7.         return summary;
  8.     }
  9.  
  10.  
  11.     private Summary summary;
  12.    
  13.    
  14.     @JsonIgnoreProperties(ignoreUnknown = true)
  15.     public class Summary{
  16.         private Integer total_count;
  17.  
  18.         public Integer getTotal_count() {
  19.             return total_count;
  20.         }
  21.        
  22.     }
  23. }


Saludos y gracias por su tiempo.


EDITO: la respuesta que espero es la siguiente:
Código Javascript:
Ver original
  1. {
  2.   "comments": {
  3.     "data": [
  4.     ],
  5.     "summary": {
  6.       "order": "chronological",
  7.       "total_count": 17
  8.     }
  9.   },
  10.   "likes": {
  11.     "data": [
  12.     ],
  13.     "summary": {
  14.       "total_count": 140
  15.     }
  16.   },
  17.   "created_time": "2014-09-01T16:56:11+0000",
  18.   "id": "10152531797326749"
  19. }

EDITO:
Si monto en el mismo equipo un host que me dé la misma respuesta y lo llamo, la peticion en el log me dice que todo está ok.
Cita:
127.0.0.1 - - [05/Sep/2014:14:29:49 -0500] "GET /json/ HTTP/1.1" 200 1430 "-" "Java/1.7.0_25"
pero sigo recibiendo el error 500 en el tomcat
ademas también definí todos los campos y propiedades que tiene el Json en mis clases para que no fuera requerida la anotacion: "@JsonIgnoreProperties(ignoreUnknown = true)" aun así la conservé.

Saludos.


Lo que he encontrado en los foros es que aparentemente no está cargando bien la referencia a las librerias que estoy utilizando.
tengo esto en el pom.xml.
Código XML:
Ver original
  1. <dependency>
  2.     <groupId>com.fasterxml.jackson.core</groupId>
  3.     <artifactId>jackson-databind</artifactId>
  4.     <version>2.4.2</version>
  5. </dependency>
  6. <dependency>
  7.     <groupId>com.fasterxml.jackson.core</groupId>
  8.     <artifactId>jackson-core</artifactId>
  9.     <version>2.4.2</version>
  10. </dependency>
  11. <dependency>
  12.     <groupId>com.fasterxml.jackson.core</groupId>
  13.     <artifactId>jackson-annotations</artifactId>
  14.     <version>2.4.2</version>
  15. </dependency>


Alguien sabe si necesito agregar algo mas o en algun otro lugar?

saludos.

Última edición por lair; 05/09/2014 a las 14:18 Razón: Agrego la respuesta que espero

Etiquetas: clase, mvc, spring, string
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:01.