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:
- Problemas con los últimos frascos de Square - retrofit, okhttp, okio y okhttp-urlconnection
- ObjectAnimator vs TranslateAnimation
- Problemas para conseguir que el video se reproduzca en Recyclerview
- ¿Java sobreescribe XML en Android?
- Cómo evitar que Gson exprese enteros como flotantes
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
?
- Excepción personalizada de los extremos de Google Cloud
- Recursos $ NotFoundException al llamar a Robolectric.buildActivity ()
- ¿Cómo puedo enviar un campo de texto en la solicitud POST que carga un blob en Blobstore y lo recupero en el controlador de carga del blob?
- Excepción; No se puede establecer la propiedad de la solicitud después de realizar la conexión; Se produce en Android Lollipop HTC M8
- ¿Por qué Intent implementa Cloneable?
- ¿Cómo puede obtener la luz azul halo de una tostada en mi tostada personalizado también?
- Facebook SDK Android AppEventsLogger NullPointerException en color
- ¿Por qué todavía estoy recibiendo java.lang.NoClassDefFoundError: android.support.v7.appcompat.R $ attr?
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; }
- APKLIB no se instala en Maven Repo
- Sugerencias sobre el desarrollo de juegos multijugador en iOS y Android?