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 Web Java Discussion :

Erreurs dans ma JSP en utilisant Spring


Sujet :

Spring Web Java

  1. #1
    Membre confirmé
    Inscrit en
    Mars 2012
    Messages
    165
    Détails du profil
    Informations forums :
    Inscription : Mars 2012
    Messages : 165
    Par défaut
    Bonjour,

    Je travaille sur une application JEE, et j'utilise Hibernate + Spring + JSP.

    Quand je teste à l'aide de JUnit, tout va bien.

    J'aimerais afficher quelques données depuis ma base de données sur ma JSP mais j'obtiens l'erreur suivante :
    org.apache.jasper.JasperException: Impossible de compiler la classe pour la JSP:

    An error occurred at line: 6 in the generated java file
    Only a type can be imported. com.FlashInfo.model.TAbonne resolves to a package

    Une erreur s'est produite à la ligne: 14 dans le fichier jsp: /listeUtilisateurs.jsp
    AbonneService cannot be resolved to a type
    11: </head>
    12: <body>
    13: <% ClassPathXmlApplicationContext context;
    14: AbonneService abonneService;
    15: context = new ClassPathXmlApplicationContext("application-context.xml");
    16: abonneService = (AbonneService) context.getBean("abonneService");
    17: List<TAbonne> listeUtilisateurs = abonneService.findAll();


    Une erreur s'est produite à la ligne: 16 dans le fichier jsp: /listeUtilisateurs.jsp
    AbonneService cannot be resolved to a type
    13: <% ClassPathXmlApplicationContext context;
    14: AbonneService abonneService;
    15: context = new ClassPathXmlApplicationContext("application-context.xml");
    16: abonneService = (AbonneService) context.getBean("abonneService");
    17: List<TAbonne> listeUtilisateurs = abonneService.findAll();
    18:
    19: System.out.println("<p>{ \"Utilisateurs\" : [");


    Une erreur s'est produite à la ligne: 17 dans le fichier jsp: /listeUtilisateurs.jsp
    TAbonne cannot be resolved to a type
    14: AbonneService abonneService;
    15: context = new ClassPathXmlApplicationContext("application-context.xml");
    16: abonneService = (AbonneService) context.getBean("abonneService");
    17: List<TAbonne> listeUtilisateurs = abonneService.findAll();
    18:
    19: System.out.println("<p>{ \"Utilisateurs\" : [");
    20: for(int i=0;i<listeUtilisateurs.size();i++)


    Stacktrace:
    org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:92)
    org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330)
    org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:439)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:356)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:334)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:321)
    org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:592)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    Voilà le code de ma page JSP :
    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
    <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1" %>
    <!DOCTYPE html>
    <%@ page import="com.FlashInfo.model.TAbonne"%>
    <%@ page import="org.springframework.context.support.ClassPathXmlApplicationContext"%>
    <%@ page import="com.FlashInfoWebApp.service.*"%>
    <%@ page import="java.util.List"%>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>Insert title here</title>
    </head>
    <body>
    <%  ClassPathXmlApplicationContext context;
        AbonneService abonneService;
        context = new ClassPathXmlApplicationContext("application-context.xml");
        abonneService = (AbonneService) context.getBean("abonneService");
        List<TAbonne> listeUtilisateurs = abonneService.findAll();
     
        System.out.println("<p>{ \"Utilisateurs\" : [");
    for(int i=0;i<listeUtilisateurs.size();i++)
    {
        System.out.println("{\"login\" : \""+listeUtilisateurs.get(i).getLogin()+"\",");
        System.out.println("\"password\" : \""+listeUtilisateurs.get(i).getPassword()+"\"}");
    }
    System.out.println("]\n}</p>"); %>
    </body>
    </html>
    Quelqu'un saurait-il m'indiquer d'où vient le problème ?

    Merci d'avance pour votre aide.

  2. #2
    Membre averti
    Homme Profil pro
    Développeur Java
    Inscrit en
    Septembre 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Septembre 2007
    Messages : 15
    Par défaut
    Comme le dit si bien le premier message d'erreur : le compilateur JSP a détecté que com.FlashInfo.model.TAbonne n'est pas un chemin de classe mais un chemin de package. Revérifie bien quelle classe tu voulais importer.

    Les deux messages d'erreurs suivants sont liés à l'utilisation du type AbonneService. A quel package appartient ce type ? Quand on lit ta séquence d'imports, on "devine" que c'était peut-être com.FlashInfoWebApp.service. Est-ce vraiment le cas ? Revérifie là-aussi les chemins de packages des classes et interfaces que tu veux utiliser.

    Pour le dernier message d'erreur, il semble être lié au premier : étant donné que l'import com.FlashInfo.model.TAbonne n'a pas été analysé comme étant une classe, on ne s'étonnera pas que le compilateur ne parvienne pas à savoir à quoi correspond le type TAbonne. Il est donc probable que ce message d'erreur disparaisse à la résolution du premier.

    Juste une remarque au passage : on voit que tu as des chemins de packages dont les noms commencent par des majuscules. Souviens-toi bien que bien que la syntaxe du Java permet de faire ça, tous les développeurs de la communauté Java ont adopté la convention selon laquelle on ne met que des lettres minuscules dans les noms de packages. On voit que dans ton cas, cela aurait pu t'aider parce qu'on aurait plus facilement vu qui sont les packages et qui sont les classes.

    Pendant que nous y sommes, on voit que tu as utilisé des System.ou.println. Évite ça dans une application Java EE : c'est le meilleur moyen d'avoir des soucis un jour Pourquoi ne pas simplement afficher ton test dans la page JSP ? Comme je suis de bonne humeur aujourd'hui, je te fais une suggestion (avec indentations pour y voir plus clair et respect des conventions de nommage des packages citées plus haut) :
    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
    <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1" %>
    <!DOCTYPE html>
    <%@ page import="java.util.List"%>
    <%@ page import="org.springframework.context.support.ClassPathXmlApplicationContext"%>
    <%@ page import="com.flashinfo.model.TAbonne"%>
    <%@ page import="com.flashinfo.webapp.service.AbonneService"%>
    <html>
    	<head>
    		<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    		<title>Insert title here</title>
    	</head>
    	<body>
    		<%
    			ClassPathXmlApplicationContext context;
    			AbonneService abonneService;
    			context = new ClassPathXmlApplicationContext("application-context.xml");
    			abonneService = (AbonneService) context.getBean("abonneService");
    			List<TAbonne> listeUtilisateurs = abonneService.findAll();
    		%>
    		<p>
    			{ "Utilisateurs" : [<br/>
    			<% for(int i=0; i<listeUtilisateurs.size(); i++) { %>
    				&nbsp;&nbsp;{"login" : "<%=listeUtilisateurs.get(i).getLogin()%>", "password" : "<%=listeUtilisateurs.get(i).getPassword()%>"}<br/>
    			<% } %>
    			]<br/>
    			}
    		</p> 
    	</body>
    </html>

  3. #3
    Membre confirmé
    Inscrit en
    Mars 2012
    Messages
    165
    Détails du profil
    Informations forums :
    Inscription : Mars 2012
    Messages : 165
    Par défaut
    Voilà l'architecture de mon application :

    src
    +com.FlashInfo.model
    -TAbonne
    +com.FlashInfoWebApp.service
    -AbonneService
    -AbonneServiceImp

  4. #4
    Membre averti
    Homme Profil pro
    Développeur Java
    Inscrit en
    Septembre 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Septembre 2007
    Messages : 15
    Par défaut Peut-être une piste...
    Est-ce que dans le fichier TAbonne.java, tu n'aurais pas par hasard la déclaration de package suivante ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    package com.FlashInfo.model.TAbonne;
    ... avec un peu plus loin la déclaration de classe :
    De même pour le fichier AbonneService.java, aurais-tu par hasard la déclaration de package :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    package com.FlashInfoWebApp.service.AbonneService;

Discussions similaires

  1. [jsp]erreur dans ma jsp
    Par ranell dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 03/12/2007, 18h06
  2. Validation , controle des erreurs dans la jsp.
    Par kalurar dans le forum Struts 2
    Réponses: 2
    Dernier message: 13/08/2007, 15h33
  3. récupération des message d'erreurs dans une jsp
    Par clement42 dans le forum Struts 1
    Réponses: 17
    Dernier message: 23/10/2006, 11h59
  4. VBA-Excel Erreur dans syntaxe requete en utilisant ADO
    Par rafnt dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 13/10/2006, 14h23

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