Fermer2
Pen^2Le 15/06/2006 à 15:35
salut

je dois developper des servlets/JSP

A priori tout devrait fonctionner (enfin en théorie hehe) mais ce ]~#^@~de tomcat 5.5 ne trouve pas une de mes classes JAVA si je l'instancie à partir d'une page JSP (problème de classpath je suppose)

vlà la page :
<%@ page language="Java" import="java.util.*" %>
<%
	// on récupère les paramètres
	//Collection<PersonsList.PersonInfo> col_pi_personsList= (Collection<PersonsList.PersonInfo>)request.getAttribute("col_pi_personsList");
	Collection col_pi_personsList= (Collection)request.getAttribute("col_pi_personsList");
%><html>
<head><title>Test de fichier HTML</title>
  <style>
    * { font-family:verdana ; font-size:xx-small; }
    body { padding:15px; width:300px; }
  </style>
</head>
<body>
  <h2>Résultat :</h2>
  <ul>
  <%
  	/*for ( PersonsList.PersonInfo pi : col_pi_personsList )
		out.println("<li>"+pi.getFirstName()+" "+pi.getLastName()+"</li>") ;*/
	for ( Iterator i= col_pi_personsList.iterator() ; i.hasNext() ; ) {
		PersonsList.PersonInfo pi= (PersonsList.PersonInfo)i.next() ;
		out.println("<li>"+pi.getFirstName()+" "+pi.getLastName()+"</li>") ;
	}
  %>
  </ul>
</body>
</html>




déjà on remarque que les nouvelles features du J2SE 5 ne semblent pas supportées (bon ça encore c'est pas un drame)
mais surtout il ne trouve pas la classe PersonsList :

org.apache.jasper.JasperException: Impossible de compiler la classe pour la JSP

Une erreur s'est produite à la ligne: 17 dans le fichier jsp: /personsList.jsp
Erreur de servlet générée:
PersonsList cannot be resolved or is not a type

Une erreur s'est produite à la ligne: 17 dans le fichier jsp: /personsList.jsp
Erreur de servlet générée:
PersonsList cannot be resolved


	org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:84)
	org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:328)
	org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:397)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:288)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:267)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:255)
	org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:556)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:293)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	PersonsList.doGet(PersonsList.java:71)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)


note La trace complète de la cause mère de cette erreur est disponible dans les fichiers journaux de Apache Tomcat/5.5.9.










j'ai alors affiché le clasPath :

<%@ page language="Java" import="java.util.*" %>
<html>
<head><title>Test de fichier HTML</title>
  <style>
    * { font-family:verdana ; font-size:xx-small; }
    body { padding:15px; width:300px; }
  </style>
</head>
<body>
  <%=System.getProperties().getProperty("java.class.path")%>
</body>
</html>



ce qui renvoit ceci :


<html>
<head><title>Test de fichier HTML</title>
  <style>
    * { font-family:verdana ; font-size:xx-small; }
    body { padding:15px; width:300px; }
  </style>
</head>
<body>
  C:\Program Files\Apache Software Foundation\Tomcat 5.5\bin\bootstrap.jar
</body>
</html>




=> J'ai alors ajouté
%CATALINA_HOME%\webapps\jmonvill\WEB-INF\classes
c'est à dire
C:\Program Files\Apache Software Foundation\Tomcat 5.5\webapps\jmonvill\WEB-INF\classes
dans mon CLASSPATH


Mes classes *.class :
/cygdrive/c/Program Files/Apache Software Foundation/Tomcat 5.5/webapps/jmonvill/WEB-INF/classes
$ ls -1
ConnMySQL$CantConnect2MySQLServException.class
ConnMySQL.class
PersonsList$PersonInfo.class
PersonsList.class






mais le JSP d'affichage de classpath retourne exactement la même chose qu'avant... roll



bref, je ne comprend pas, je ne sais pas comment faire, sniff, sniff mourn