0
votes

Botte de printemps - Cartographie ambiguë

Tirant les cheveux sur celui-ci, ne fait absolument aucun sens xxx xxx

tentative de démarrage de mon application de démarrage à ressort avec ces deux contrôleurs lance l'erreur suivante xxx

Le nom de la classe, le nom de la méthode, la cartographie des demandes et les paramètres sont tous uniques, je ne comprends tout simplement pas.

Comme vous pouvez le dire «Je suis descendu dans une frustration pure, essayant toutes sortes de changements de chaîne pour simplement le faire travailler au départ, mais si quelqu'un pouvait m'aider à identifier le problème, je serais extrêmement reconnaissant.

Edit: Utilisation de Spring-Boot 2.2 .4


0 commentaires

3 Réponses :


0
votes

ok .. j'ai réussi à la compiler .. Je pense que j'ai été mal compris que vous pouvez utiliser le @rescontroller code> annotation

si vous fournissez p>

@RestController("/firmware")


0 commentaires

1
votes

Comme vous l'avez mentionné dans votre propre réponse: Oui, vous avez mal compris. Ceci est facile à confondre.

@RestController S est le nom du composant, pas le chemin de mappage de la requête. Jetez un oeil à la source de org.springframework.web.bind.annotation.rescontroller # valeur .

Il est très similaire à Org.springframework.stereotype # Valeur et les autres dans org.springframework.stereotype (dans printemps-contexte ). Vous avez les annotations correctes maintenant: xxx


0 commentaires

0
votes

Le framework se plaint qu'il existe un piste post-chemin / code> à partir des 2 contrôleurs où le mappage n'est spécifié pour aucun d'eux, il ne peut donc pas distinguer le chemin exact.

Pouvez-vous s'il vous plaît Essayez le code suivant: p> xxx pré>

@RequestMappage code> au niveau du contrôleur doit définir le chemin racine de toutes les API de ce chemin indiquer par exemple que je dois Créer un contrôleur lié à Feeds API que je ferais: P>

@RestController
@RequestMapping("/api/feeds")
class FeedsController {
    //Constructor inject fields here
    @Autowired
    FeedsController() {

    }

    @GetMapping("/")
    ResponseEntity<Map<String, String>> get() {
        return ResponseEntity.ok(Collections.emptyMap());
    }

    @PostMapping("/")
    ResponseEntity<Map<String, String>> post() {
        return ResponseEntity.ok(Collections.emptyMap());
    }

    /**
     * Standard way to implement delete is to soft delete
     * @return
     */
    @DeleteMapping("/")
    ResponseEntity<Map<String, String>> delete() {
        return ResponseEntity.ok(Collections.emptyMap());
    }
}


0 commentaires