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

Spring Java Discussion :

Etat HTTP 404 - /WEB-INF/views/product/create.jsp


Sujet :

Spring Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 136
    Points : 57
    Points
    57
    Par défaut Etat HTTP 404 - /WEB-INF/views/product/create.jsp
    Bonjour
    je suis entrain de réaliser une application spring mvc , j ' ai un problème avec le contrôleur . quand j appuie sur lien create il me dirige pas sur bon url et j'ai un message d'erreur "Etat HTTP 404 - /WEB-INF/views/product/create.jsp"

    voici le 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
    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
     
     
    @Controller
    @RequestMapping(value="/product")
    public class ProductEditController {
     
    	@Autowired ProductRepository productRepository;	
     
    	public ModelAndView prepareModelAndView(Product product){
    		ModelAndView mv = new ModelAndView("edit"); /*jsp*/
    		mv.addObject("id", product.getId());
    		mv.addObject("product", product);
    		return mv;
    	}
     
    	@RequestMapping("/create")
    	public ModelAndView createProduct(){		
    		return prepareModelAndView(new Product());
    	}
     
    	@RequestMapping("/edit")
    	public ModelAndView updateProduct(@RequestParam ("id") Long id){
    		Product product = productRepository.findById(id);		
    		return prepareModelAndView(product);
    	}
     
    	@RequestMapping(value="/editsubmit",method=RequestMethod.POST)
    	public ModelAndView addProductOnSubmit(@Valid @ModelAttribute("Product") Product product, BindingResult bindingResult){
    		if(bindingResult.hasErrors()){
    			return new ModelAndView("edit","product", product);
    		}
     
    		if(product.getId() !=  null){
    			productRepository.create(product);
    		}else{
    			productRepository.update(product);
    		}
    		return new ModelAndView("redirect:/product/edit");
    	}
     
    	@RequestMapping("/delete")
    	public ModelAndView deleteProduct(@RequestParam ("id") Long id){
    		Product product = productRepository.findById(id);
    		if(product != null)
    			productRepository.delete(id);		
    		return new ModelAndView("redirect:/listproduct"); /*jsp*/
    	}
     
     
    }
    voici home page
    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
     
     !DOCTYPE html >
     
    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
    <%@taglib uri="http://www.springframework.org/tags" prefix="spring" %>
    <%@taglib uri="http://www.springframework.org/tags/form" prefix="form" %>
    <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
     
     
    <html lang="fr">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <meta charset="utf-8">
    <title>Ecommerce project</title>
    </head>
    <body>
      <form action="" method="post">
    	<li><a href="<c:url value='/product/create'/>"> Create </a></li>
    	<li><a href="productlist">Lister</a></li>
     
     </form>	 
    </body>
    </html>
    voilci le fichier web.xml
    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
     
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
      <display-name>ECommerceProject</display-name>
     
     
     
      <servlet>
        <servlet-name>dispatcher</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  
        <load-on-startup>1</load-on-startup>
      </servlet>
      <servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <url-pattern>/</url-pattern>
      </servlet-mapping>
     
      <!-- le chargeur du contexte de l'application -->
      <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
      </listener>
      <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/classes/applicationContext.xml</param-value>
      </context-param>
     
        <filter>
        <filter-name>JpaFilter</filter-name>
        <filter-class>org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter</filter-class>
      </filter>
      <filter-mapping>
        <filter-name>JpaFilter</filter-name>
        <url-pattern>/*</url-pattern>
      </filter-mapping>
     
    </web-app>
    voici le dispatcher

    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
     
     
    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
    	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc"
    	xmlns:context="http://www.springframework.org/schema/context"
    	xsi:schemaLocation="
            http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd
            http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
            http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd">
     
     
        <context:annotation-config />
            <context:component-scan base-package="be.ecommerceproject.controller"> 
         </context:component-scan>
     
    	<bean id="viewResolver"	class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    		<property name="prefix">
    			<value>/WEB-INF/views/</value>
    		</property>
    		<property name="suffix">
    			<value>.jsp</value>
    		</property>
    	</bean>
     
    </beans>

  2. #2
    Modérateur
    Avatar de MasterMbg
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2011
    Messages
    719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 719
    Points : 1 493
    Points
    1 493
    Par défaut
    Bonjour,
    je suis apprenant dans java ee (10 jours seulement de travail) je ne sais pas si je vais t'être d'une aide particulière. lol
    Au fait, ce code d'erreur 404 m'était renvoyé lorsque j'avais un souci dans le web.xml de mon projet dans lequel je déclare mes servlets. Surtout, le problème venait du renseignement du context d'une servlet dans la balise . Il faut soigner à bien renseigner le contexte (package) dans lequel se trouve votre servlet en le terminant bien sur par un point, suivi du nom de la servlet en question.
    Plus tu apprends sérieusement, plus tu te rapproches d'un savoir noble. Une chose est certaine, les difficultés ne s'écarteront de ton chemin...

    Tu es nouveau dans le développement Android, la page des COURS est là pour te faciliter la vie
    Tu peux trouver la réponse à ta question dans la FAQ
    Retrouvez mon tutoriel sur la consommation des services web SOAP
    Pense à voter positivement en appuyant sur en bas à droite de la réponse qui t'a donné une piste de solution.

  3. #3
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="/product/create">
    A+.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 136
    Points : 57
    Points
    57
    Par défaut
    Citation Envoyé par andry.aime Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="/product/create">
    A+.
    j 'ai change le code , j' ai toujours le même message d erreur

    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
     
     
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
     !DOCTYPE html >
     
    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
    <%@taglib uri="http://www.springframework.org/tags" prefix="spring" %>
    <%@taglib uri="http://www.springframework.org/tags/form" prefix="form" %>
    <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
     
     
    <html lang="fr">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <meta charset="utf-8">
    <title>Ecommerce project</title>
    </head>
    <body>
      <form action="" method="post">
    	<li><a href="<product/create "> Create </a></li>
    	<li><a href="productlist">Lister</a></li>
     
     </form>	 
    </body>
    </html>

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 136
    Points : 57
    Points
    57
    Par défaut
    Citation Envoyé par kanebody Voir le message
    j 'ai change le code , j' ai toujours le même message d erreur

    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
     
     
     
     !DOCTYPE html >
     
    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
    <%@taglib uri="http://www.springframework.org/tags" prefix="spring" %>
    <%@taglib uri="http://www.springframework.org/tags/form" prefix="form" %>
    <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
     
     
    <html lang="fr">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <meta charset="utf-8">
    <title>Ecommerce project</title>
    </head>
    <body>
      <form action="" method="post">
    	<li><a href="<product/create "> Create </a></li>
    	<li><a href="productlist">Lister</a></li>
     
     </form>	 
    </body>
    </html>
    je suis toujours à la recherche de solution merci

  6. #6
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="<product/create ">
    attention, tu as un "<" à la place de "/" dans l'attribut href.

    A+.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 136
    Points : 57
    Points
    57
    Par défaut
    Citation Envoyé par andry.aime Voir le message
    attention, tu as un "<" à la place de "/" dans l'attribut href.

    A+.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <li><a href="product/create/">Créer</a></li>
    je viens de modifier le code et j' ai toujours le meme erreur

    merci

  8. #8
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Bonjour,

    Remplace
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <url-pattern>/</url-pattern>
      </servlet-mapping>
    par
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <url-pattern>*</url-pattern>
      </servlet-mapping>

    Tu es sûr d'avoir le fichier /WEB-INF/views/product/create.jsp et que le controleur est dans le package est dans l'arborescence de be.ecommerceproject.controller ?

    A+.

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 136
    Points : 57
    Points
    57
    Par défaut
    Citation Envoyé par andry.aime Voir le message
    Bonjour,

    Remplace

    par
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <url-pattern>*</url-pattern>
      </servlet-mapping>

    Tu es sûr d'avoir le fichier /WEB-INF/views/product/create.jsp et que le controleur est dans le package est dans l'arborescence de be.ecommerceproject.controller ?

    A+.
    apres la modification j ai un message d' erreur le serveur ne demarre pas
    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
     
    	at java.lang.Thread.run(Unknown Source)
    Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[]]
    	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
    	... 7 more
    Caused by: java.lang.IllegalArgumentException: <url-pattern> * invalide dans l'association de servlet (servlet mapping)
    	at org.apache.catalina.core.StandardContext.addServletMapping(StandardContext.java:3223)
    	at org.apache.catalina.core.StandardContext.addServletMapping(StandardContext.java:3198)
    	at org.apache.catalina.deploy.WebXml.configureContext(WebXml.java:1366)
    	at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1346)
    	at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:878)
    	at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:376)
    	at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
    	at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
    	at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5269)
    	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    	... 7 more
    le controleur est dans le package be.ecommerceproject.controller voici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
      <context:component-scan base-package="be.ecommerceproject.controller"> 
         </context:component-scan>
    merci

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 38
    Points : 41
    Points
    41
    Par défaut
    est-ce que tu utilises des règles d’interception d'url de spring security ?

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 136
    Points : 57
    Points
    57
    Par défaut
    Citation Envoyé par sgdev Voir le message
    est-ce que tu utilises des règles d’interception d'url de spring security ?
    non j 'utilise pas ça

  12. #12
    Membre actif
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Janvier 2008
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Janvier 2008
    Messages : 227
    Points : 273
    Points
    273
    Par défaut
    Salut,

    Je trouve ça dommage d'avoir supprimer ton contexte en supprimant ton :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <li><a href="<c:url value='/product/create'/>"> Create </a></li>
    En effet, tu ne dis pas si tu tournes sur le contexte root ou pas. Et puis même si tu es sur le root, au final, comme tu reste dans ton appli locale, c'est dommage de perdre ça.

    Par ailleurs, mais c'est du détails car ce que tu as fait devrais fonctionner. Je préfère personnellement la syntaxe suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <li><c:url value="/product/create" var="url" /><a href="${url}"> Create </a></li>
    qui est visuellement plus lisible.

    Ensuite, les méthodes de tes controlleurs, tu peux directement retourner une string comme par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    @RequestMapping("/delete")
    	public ModelAndView deleteProduct(@RequestParam ("id") Long id){
    		Product product = productRepository.findById(id);
    		if(product != null)
    			productRepository.delete(id);		
    		return "redirect:/listproduct";
    	}
    Attention aussi à la sécurité de ton application. un get sur /product/delete/?id=toto peut te supprimer quelque chose de ta base (de ce que je comprends de ton code) et donc tu es sujet à tout ce qui est csrf. Il te faudrait au moins faire un post à défaut de faire un token.

    Ensuite, truc bête mais il me semble que @RequestMapping possède un required qui est par défaut à true (il me semble). Donc ton url ne peut surement pas aboutir... Au alors balancé une exception.


    Cordialement,
    Patouche

Discussions similaires

  1. [MVC] Erreur : Etat HTTP 404 - /learning/create
    Par kanebody dans le forum Spring Web
    Réponses: 2
    Dernier message: 15/07/2014, 17h37
  2. Etat HTTP 404 - /personnel/WEB-INF/vues/feuille1.jsp
    Par hoor3in dans le forum Struts 1
    Réponses: 2
    Dernier message: 19/07/2007, 11h42
  3. [Tomcat]Etat HTTP 404, fichier web.xml inéxistant
    Par subzero82 dans le forum Tomcat et TomEE
    Réponses: 12
    Dernier message: 09/05/2006, 09h10
  4. Tomcat - Servlet - Erreur "Etat HTTP 404"
    Par Doumeasse38 dans le forum Tomcat et TomEE
    Réponses: 16
    Dernier message: 03/05/2006, 13h51
  5. [eclipse] [tomcat] etat http 404
    Par semaj_james dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 30/03/2006, 21h03

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