Sie haben zwei Probleme:
- Lassen Sie
@Consumes(MediaType.APPLICATION_JSON)weg . Ihre Anfrage hat überhaupt nichts mit json zu tun. @PathParams sollte durch@RequestParamersetzt 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 .