MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Java MongoDB POST:415 mediatype non supportato

Hai due problemi:

  1. Ometti @Consumes(MediaType.APPLICATION_JSON) . La tua richiesta non ha nulla a che fare con json.
  2. @PathParam s deve essere sostituito con @RequestParam S. I valori vengono letti come parametri di richiesta (stringa di query) e non come parti di percorso.

Inoltre, nell'esempio della richiesta dovresti eliminare il / extra dopo User :

localhost:8080/User?userName=Daniel&...

Per utilizzare i parametri del percorso, dovresti aggiungere un'annotazione del percorso alla configurazione del metodo della risorsa, ad esempio:

@RequestMapping("/{userName}/{password}/{phone}/{email}/{roles}

e la richiesta dovrebbe essere simile a:

localhost:8080/User/Daniel/test/0634554567/daniel/OWNER

Che non è affatto intuitivo

E un'ultima cosa:List<String> roles è sbagliato. Spring non verrà convertito in un elenco di stringhe, indipendentemente dal fatto che utilizzi il parametro path o query. Dovrai dividere tu stesso i ruoli in array (probabilmente usando , come separatore) o fornire un Converter .