IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Tomcat et TomEE Java Discussion :

problème de redirection avec une app SpringBoot


Sujet :

Tomcat et TomEE Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Homme au foyer
    Inscrit en
    Juillet 2022
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Homme au foyer

    Informations forums :
    Inscription : Juillet 2022
    Messages : 7
    Par défaut problème de redirection avec une app SpringBoot
    Bonjour à tous,

    je m'en viens présenter mon problème car je ne sais plus où chercher.

    Pour m'entraîner j'ai fait une petite application Java avec SpringBoot, faisant appel à MariaDB.
    Mon appli fonctionne parfaitement en local.

    Comme j'ai installé un serveur à domicile, avec Apache et Tomcat, je l'ai déployée dessus et cela fonctionne aussi quand j'utilise l'adresse IP.

    Ensuite parce que je dispose d'un nom de domaine j'ai mis en place une redirection dans Apache avec le module mod_proxy.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <VirtualHost *:80>
            ServerName nom_de_domaine.fr
            ServerAlias www.nom_de_domaine.fr
            ErrorLog /var/log/httpd/nom_de_domainel-error.log
            CustomLog /var/log/httpd/nom_de_domaine-access.log common
     
            ProxyRequests Off
            ProxyPreserveHost on
            <Location / >
                 ProxyPass http://localhost:8080/webapp2-0.0.1-SNAPSHOT/
                 ProxyPassReverse http://localhost:8080/webapp2-0.0.1-SNAPSHOT/
            </Location>
    </VirtualHost>
    Et là le problème commence: la page de mon appli s'affiche bien avec le nom de domaine mais quand on envoie le formulaire qui fait partie de cette page, on tombe sur "Page not found err404" et les données ne sont pas transmises à la base de données.

    Il y a donc un problème de communication entre les différents composants. Je ne sais même pas si ça vient d'Apache, de Tomcat ou de mon appli.

    Si quelqu'un a une idée, qu'il n'hésite vraiment pas à m'en faire part, parce que là vraiment je sèche depuis plusieurs jours

    Merci d'avance

  2. #2
    Membre très actif

    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    489
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 489
    Billets dans le blog
    5
    Par défaut
    Il faut un code de ce genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
     
    package fr.cisirh.explorateur.controller;
     
    import java.io.IOException;
     
    import javax.servlet.http.HttpServletResponse;
     
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
     
    import fr.cisirh.explorateur.controller.util.ConfigurationApplication;
     
    /**
     * Controlleur appeelée lors de l'appel de l'application par Open HR. On redirige vers les pages index.html construites avec Vue.je.
     * @author pgibault-adc
     *
     */
    @Controller
    public class IndexController {
     
    	private static final Logger LOGGER = LoggerFactory.getLogger(IndexController.class);
     
    	private static final String PATH_APPLICATION_BASE = "./application/index.html";
     
    	private static final String PATH_APPLICATION_ADMINISTRATION = "./configuration/index.html";
     
    	private static final String PATH_NON_DISPONIBLE = "./applicationNonDisponible.html";
     
    	private final ConfigurationApplication configurationApplication;
     
    	public IndexController(ConfigurationApplication configurationApplication) {
    		this.configurationApplication = configurationApplication;
    	}
     
    	/**
             * Redirige vers l'application.
             * @param response Réponse HTTP
             * @throws IOException
             */
    	@RequestMapping(value =  {"" ,"/"})
        public void redirectApplication(HttpServletResponse response) throws IOException {
            String path = configurationApplication.isDisponible()?PATH_APPLICATION_BASE:PATH_NON_DISPONIBLE;
            LOGGER.debug("Redirect..."+path);
            response.sendRedirect(path);
        }
     
    	/**
             * Redirige vers l'application administrateur.
             * @param response Réponse HTTP.
             * @throws IOException
             */
    	@RequestMapping(value =  {"/configuration"})
        public void redirectAdministration(HttpServletResponse response) throws IOException {
            String path = configurationApplication.isDisponible()?PATH_APPLICATION_ADMINISTRATION:PATH_NON_DISPONIBLE;
            LOGGER.debug("Redirect..."+path);
            response.sendRedirect(path);
        }
    }
    A noter que le WAR (ici, compilation en WAR) est de ce type:
    Nom : archive.png
Affichages : 369
Taille : 103,5 Ko

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Homme au foyer
    Inscrit en
    Juillet 2022
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Homme au foyer

    Informations forums :
    Inscription : Juillet 2022
    Messages : 7
    Par défaut
    Merci je vais checker ça

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Homme au foyer
    Inscrit en
    Juillet 2022
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Homme au foyer

    Informations forums :
    Inscription : Juillet 2022
    Messages : 7
    Par défaut
    Merci pour ta suggestion mais hélas pour moi, le résultat est le même.

    J'ai modifié ma méthode

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    @PostMapping("/")
        public String doPost(User user){
           webApp2Service.createUser(user);
     
            return "redirect:/";
    }
    en

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    @PostMapping("/")
        public void doPost(User user, HttpServletResponse response) throws IOException {
            webApp2Service.createUser(user);
     
           response.sendRedirect("/");
     
        }
    Mon app fonctionne partout comme avant mais toujours pas avec le nom de domaine.

  5. #5
    Membre très actif

    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    489
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 489
    Billets dans le blog
    5
    Par défaut
    Evidement, vu que tu ne précise pas ta ressource...(Traduction:La page HTML/JSP à charger).

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Homme au foyer
    Inscrit en
    Juillet 2022
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Homme au foyer

    Informations forums :
    Inscription : Juillet 2022
    Messages : 7
    Par défaut
    Merci pour ta réponse.

    Je veux bien croire qu'il y ait un problème avec mon code, bien que ça fonctionne correctement quand on tape l'adresse IP + :8080/nom_de_l_appli dans le navigateur.

    Mon appli c'est juste une page qui s'appelle elle-même pour actualiser l'affichage d'une liste.

    Mon contrôleur ;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    package xyz.strahi.webapp2.controller;
     
    ..
    @Controller
    public class WebApp2Controller {
     
        @Autowired
        private WebApp2Service webApp2Service;
     
        @GetMapping("/")
        public String doGet(Model model){
            List<User> userList = webApp2Service.findAllUser();
            model.addAttribute("userList",userList);
            return "index";
        }
     
        @PostMapping("/")
        public void doPost(User user, HttpServletResponse response) throws IOException {
            webApp2Service.createUser(user);
     
           response.sendRedirect("/");
     
       }
    }
    La méthode Post redirige vers le Get, où se trouve le fichier html ( ici : index)

    Mais ça a l'air que même le Post n'est pas envoyé puisqu'il n y a pas de nouvelles données dans la BDD.

    Mon fichier html
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    <!DOCTYPE html>
    <html lang="fr">
        <head>
            <meta charset="UTF-8">
            <link rel="stylesheet" href="style.css">
            <title>loginPage</title>
        </head>
        <body>
            <h1>Veuillez vous identifier :</h1>
     
            <form method="post" th:action="@{/}" th:object="${user}">
                <p>
                    <label for="prenom">Votre prénom :</label>
                    <input type="text" id="prenom" name="prenom" /><br/>
                    <label for="nom">Votre nom :</label>
                    <input type="text" id="nom" name="nom" />
                    <input type="hidden" name="message" th:value="${message}">
                </p>
                <input type="submit" value="Go !!" />
            </form>
     
            <table class="table table-bordered">
                <thead>
                    <tr>
                        <th>Prénom</th>
                        <th>Nom</th>
                    </tr>
                </thead>
                <tbody>
                    <tr th:each="user : ${userList}">
                        <td th:text="${user.prenom}"></td>
                        <td th:text="${user.nom}"></td>
                    </tr>
                </tbody>
            </table>
        </body>
    </html>
    Théoriquement le problème pourrait venir de <form method="post" th:action="@{/}" th:object="${user}"> puisque le Post du contrôleur n''est pas actionné.

    Mais alors pourquoi cela déconne uniquement quand on utilise le nom de domaine et pas l'IP ?

    Sacrée question

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Contrôler des programmes avec une app VB.NET ?
    Par Pouknouki dans le forum VB.NET
    Réponses: 2
    Dernier message: 18/06/2014, 07h37
  2. modifier un fichier XML avec une App
    Par demzu dans le forum Windows Phone
    Réponses: 1
    Dernier message: 16/05/2011, 15h26
  3. redirection avec une zone de texte
    Par tjoce dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 24/06/2007, 22h41
  4. [jsp] redirection avec une variable
    Par louline dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 11/06/2007, 16h51
  5. communiquer avec une app tierce depuis java
    Par azzhunter dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 24/03/2007, 11h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo