No HttpMessageConverter adecuado encontrado al intentar ejecutar la solicitud restclient

Estoy tratando de usar Spring for Android rest client para enviar datos con una http post , para evitar la creación y análisis de los datos json.

De su manual tienen el siguiente método:

 restTemplate.postForObject(url, m, String.class) 

Después de llamar al método, obtengo la siguiente excepción:

 No suitable HttpMessageConverter found when trying to execute restclient request 

Mi fragmento de código de actividad es:

 RestTemplate restTemplate = new RestTemplate(); restTemplate.getMessageConverters().add(new MappingJacksonHttpMessageConverter()); restTemplate.getMessageConverters().add(new StringHttpMessageConverter()); Message m = new Message(); m.setLibrary("1"); m.setPassword("1395"); m.setUserName("1395"); String result = restTemplate.postForObject(url, m, String.class); 

Y el objeto Mensaje es:

 public class Message { private String UserName, Password, Library; public String getUserName() { return UserName; } public void setUserName(String userName) { UserName = userName; } public String getPassword() { return Password; } public void setPassword(String password) { Password = password; } public String getLibrary() { return Library; } public void setLibrary(String library) { Library = library; } } 

¿Por qué no puede convert the Message object to JSON ?

Parece que no ha agregado un Message HttpMessageConverter . HttpMessageConverter es una interface . Necesita crear una clase que implemente HttpMessageConverter<Message> y agregue una instancia de esa clase a RestTemplate través de restTemplate.getMessageConverters().add(new MyMessageConverter());

Podría haber algunas razones diferentes por las que esto puede suceder. En mi caso, tenía el RestTemplate ya conectado, pero aún así este error. Resulta que tuve que añadir una dependencia de "jackson-databind":

 <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> </dependency> 

Su código se ve bien en general. Tal vez este es un problema de versión. Compruebe si utiliza Jackson 2 y, si es así, cambie el convertidor a MappingJackson2HttpMessageConverter .

No hay necesidad de algo como HttpMessageConverter<Message> .

En un nodo secundario: la convención de Java es usar una capa inferior para nombres de variables. Por lo tanto, sería más legible para otros desarrolladores de Java a hacer:

 private String library; public void setLibrary(String library) { this.library = library; } 
  • Iniciar la actividad en imageview hacer clic en adaptador de matriz personalizada
  • Java Dates - ¿Cuál es la clase correcta para usar?
  • Aplicación de tiempo de uso de seguimiento de Android android en Android
  • Android Studio necesita JDK 7 para Android-L mac
  • Android: Java: usando un recurso de cadena en un Toast
  • Excepción de host no resuelta en Android
  • ¿Cómo puedo localizar por qué mi actividad se termina?
  • Visualización de la fecha en formato de doble dígito
  • Android Json y valores nulos
  • ¿Alternativa al patrón observable?
  • Guardar imagen desde WebView
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.