Page 1 sur 1

[RESOLU] Error on BarkBank HTTP request: 404

Publié : 17 déc. 2019 19:45
par kagans_a
Bonjour,

Je comprends bien l'erreur :

HttpNotFoundException: Error on HTTP request: 404 [http://localhost:8081/barkbank/creditca ... 2F23%22%7D]

Mais je ne comprends pas pourquoi....

Dans mon controlleur j'ai une GetRequest qui prend une @PathVariable String param.

Suis-je sur une mauvaise piste?

Par ailleurs, contrairement à la video, mon projet a été importé dans Spring boot sous le nom de TP09BB et non TP_BB.
Est ce que ça change quelques chose?
Si je crée un dossier TP_BB, et je dézippe dedans les SourcesFournis, il me manque les JavaRessources.


Merci d'avance,

Asya Kagansky

Re: Error on HTTP request: 404

Publié : 17 déc. 2019 20:01
par graffiop
Bonjour,

Euh, avez vous démarré le serveur web de BarkBank comme indiqué sur http://java.cnam.fr/iagl/glg203/tp/TP09_SP/index.html?
Lancer l'application SpringBoot Tp_BBApplication (... et son server Tomcat embarqué) depuis Eclipse ou par gradle bootRun
... pour tester manuellement le service web BarkBank à l'adresse http://localhost:8081/barkbank/
Le nom du projet créé n'est pas un problème à priori (il a été forcé par Eclipse à TP09BB car on a fourni le fichier settings.gradle inutile en l'occurrence).

Re: Error on HTTP request: 404

Publié : 18 déc. 2019 13:32
par kagans_a
Merci.

Oui, je suis bien connecté.

J'ai réussi (?) faire répondre mon controlleur. En revanche je reçoit toujours un status "date invalid". J'ai testé avce des valeurs en dur, idem.
Comment debugger le controlleur pour voir les valeurs que il reçoit? Est ce que le problème c'etst le décodage?

Voici mon controlleur:

@GetMapping(value = "/creditcard")
@ResponseBody
public String verifyCreditCard(@RequestParam(value = "param") String param, HttpServletResponse response) throws JsonParseException, JsonMappingException, IOException {

String data = URLDecoder.decode(param, "UTF-8");
// ...[ Code supprimé]

return VerificationAlgorithm.verify(ccNumber, ccType, ccExpiryYear, ccExpiryMonth);

}

En vous remerciant,
Asya

Re: Error on HTTP request: 404

Publié : 18 déc. 2019 13:56
par graffiop
Pas sûr que la valeur retournée par votre controller soit récupérée par quelqu'un!

Essayez plus simplement :

Code : Tout sélectionner

	creditCardStatus = VerificationAlgorithm.verify(ccNumber, ccType, ccExpiryYear, ccExpiryMonth);
        final PrintWriter out = response.getWriter();
        out.print(creditCardStatus);
        out.close();
}

Re: Error on HTTP request: 404 - Resolu

Publié : 18 déc. 2019 15:58
par kagans_a
Merci beaucoup, ça marche maintenant!

Re: [RESOLU] Error on BarkBank HTTP request: 404

Publié : 18 déc. 2019 20:51
par harrak_z
Bonsoir
Est ce qu'on a besoin d'envoyer la réponse du web service dans une HttpServletResponse comme dans ce code ?
final PrintWriter out = response.getWriter();
out.print(creditCardStatus);
out.close();
Je ne vois pas l'interet ?
Merci de votre retour

Re: [RESOLU] Error on BarkBank HTTP request: 404

Publié : 18 déc. 2019 22:11
par graffiop
Le service web http://localhost:8081/barkbank/creditcard doit renvoyer (écrire sur sa sortie standard) un statut de la carte sous forme de chaine de caractère (définie dans l'interface CreditCardStatus).
Le plus simple (si on ne connait pas l'annotation @ResponseBody) est donc d'utiliser un PrintWriter, récupérable à partir de l'instance de HttpServletResponse passée au controller Spring (et aux servlets).

Re: [RESOLU] Error on BarkBank HTTP request: 404

Publié : 18 déc. 2019 23:31
par harrak_z
Ok. Je comprends mieux.
Merci pour votre retour .