2017-07-11 2 views
0

J'ai une application springboot. Je veux avoir une méthode REST qui prend JsonNode comme argument! Mais quand j'essaye de soumettre un formulaire html cela donne l'erreur ci-dessous ...Envoyer des données en tant que JSONNode

Échec de l'instanciation [com.fasterxml.jackson.databind.JsonNode]: Est-ce une classe abstraite ?; l'exception imbriquée est java.lang.InstantiationException

Voici ma méthode de repos dans le contrôleur.

@RequestMapping(value = "/action", method = RequestMethod.POST,    
       produces = MediaType.APPLICATION_JSON, 
       consumes = MediaType.APPLICATION_FORM_URLENCODED) 
public String action(JsonNode data) { 

Merci

+0

https://fasterxml.github.io/jackson-databind/javadoc/2.2.0 /com/fasterxml/jackson/databind/JsonNode.html JSONNode est abstrait comme l'erreur le suggère. De plus, pourquoi lieriez-vous votre API à une classe tierce? Beaucoup mieux d'accepter réellement un modèle attendu. Je ne suis pas sûr de ce que vous essayez d'accomplir en vous attachant directement à une classe de jackson et en obligeant vos clients à écrire le corps requis pour accomplir ce que les JsonNodes concrets attendent. –

Répondre

0

Si vous ajoutez @RequestBody à l'argument, il fonctionnera:

public String action(@RequestBody JsonNode data) {