Sie haben zwei Probleme:
- Lassen Sie
@Consumes(MediaType.APPLICATION_JSON)
weg . Ihre Anfrage hat überhaupt nichts mit json zu tun. @PathParam
s sollte durch@RequestParam
ersetzt werden s. Die Werte werden als Anfrageparameter (Query-String) gelesen und nicht als Pfadteile.
Außerdem sollten Sie im Anforderungsbeispiel den zusätzlichen /
entfernen nach User
:
localhost:8080/User?userName=Daniel&...
Um Pfadparameter zu verwenden, sollten Sie der Konfiguration der Ressourcenmethode eine Pfadanmerkung hinzufügen, z. B.:
@RequestMapping("/{userName}/{password}/{phone}/{email}/{roles}
und die Anfrage sollte etwa so aussehen:
localhost:8080/User/Daniel/test/0634554567/daniel/OWNER
Was überhaupt nicht intuitiv ist
Und noch etwas:List<String> roles
auf ist falsch. Spring konvertiert nicht in eine Liste von Zeichenfolgen, egal ob Sie Pfad- oder Abfrageparameter verwenden. Sie müssen die Rollen selbst in Arrays aufteilen (wahrscheinlich mit ,
als Trennzeichen) oder einen Converter
bereitstellen .