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 :

[Tomcat] question sur la compilation des Jsp


Sujet :

Tomcat et TomEE Java

  1. #1
    Invité
    Invité(e)
    Par défaut [Tomcat] question sur la compilation des Jsp
    Bonjour,

    J'ai installé sur une machine srv Tomcat et un Serveur CVS.
    Sur un poste de travail wrk j'ai eclipse et un Tomcat.

    Je développe mon application en local, je la teste et lorsque le résultat me plait, je fais un commit sur mon cvs.

    Sur le serveur je fait un cvs update de mon application dans webapps

    Je me retrouve donc avec les mêmes classes et pages sur wrk que sur srv.

    Mais lorsque j'essaye d'accéder à une page sur srv j'ai une JasperException:
    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
     
    org.apache.jasper.JasperException: Impossible de compiler la classe pour la JSP
    	org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:97)
    	org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:346)
    	org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:414)
    	org.apache.jasper.compiler.Compiler.compile(Compiler.java:472)
    	org.apache.jasper.compiler.Compiler.compile(Compiler.java:451)
    	org.apache.jasper.compiler.Compiler.compile(Compiler.java:439)
    	org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:511)
    	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:295)
    	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
    	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
     
    cause mère
     
    Unable to find a javac compiler;
    com.sun.tools.javac.Main is not on the classpath.
    Perhaps JAVA_HOME does not point to the JDK
    	org.apache.tools.ant.taskdefs.compilers.CompilerAdapterFactory.getCompiler(CompilerAdapterFactory.java:106)
    	org.apache.tools.ant.taskdefs.Javac.compile(Javac.java:935)
    	org.apache.tools.ant.taskdefs.Javac.execute(Javac.java:764)
    	org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:382)
    	org.apache.jasper.compiler.Compiler.compile(Compiler.java:472)
    	org.apache.jasper.compiler.Compiler.compile(Compiler.java:451)
    	org.apache.jasper.compiler.Compiler.compile(Compiler.java:439)
    	org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:511)
    	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:295)
    	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
    	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    Le contenu de ma page est le suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
        pageEncoding="ISO-8859-1"%>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>Insert title here</title>
    </head>
    <body>
    <%
    	out.println("Hello");
    %>
    </body>
    </html>
    Ma commande update
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    @cd "C:\Program Files\Apache Software Foundation\Tomcat 5.0\webapps"
     
    cvs -d ":pserver:user@srv:/cvs/base" login -p passwd
     
    cvs -d ":pserver:user@srv:/cvs/base" checkout Projet
     
    cvs -d ":pserver:user@srv:/cvs/base" update Projet
     
    net stop "Apache Tomcat"
    net start "Apache Tomcat"
    ------------------------------------------------------------------

    J'ai installé Eclipse sur srv. depuis celui-ci je fais un update de mon projet et la ça fonctionne ...

    Avez-vous une idée de la cause ?

    En bref :
    Pourquoi est-ce qu'un projet récupèrer d'un cvs depuis éclipse fonctionne sous tomcat alors que ce même projet récupère en commande ne fonctionne pas ?


    Merci

  2. #2
    Membre éclairé

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2002
    Messages
    346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2002
    Messages : 346
    Points : 737
    Points
    737
    Par défaut
    Le problème est simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Perhaps JAVA_HOME does not point to the JDK
    Tu dois, sur ton serveur, avoir une variable d'environnement JAVA_HOME qui pointe vers le JDK que tu veut utiliser. (Attention, il te faut un JDK et pas une JRE)

    En gros, Tomcat ne trouve pas le compilateur JAVA!

  3. #3
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Blaise1
    J'ai installé Eclipse sur srv. depuis celui-ci je fais un update de mon projet et la ça fonctionne ...
    Pourquoi depuis éclipse cela fonctionne alors ?

    Et puis en dos
    echo %JAVA_HOME% me donne bien le path jusqu'a la jdk

  4. #4
    Membre éclairé

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2002
    Messages
    346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2002
    Messages : 346
    Points : 737
    Points
    737
    Par défaut
    Eclipse a ses propres version du JDK, il ne nécéssite pas de varaible d'environnement JAVA_HOME pour localiser un JDK.

    Certainement, sur ton serveur, la variable JAVA_HOME n'existe pas ou ne pointe pas vers le bon JDK

  5. #5
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par woodwai
    Certainement, sur ton serveur, la variable JAVA_HOME n'existe pas ou ne pointe pas vers le bon JDK
    ben si :
    C:\Program Files\Java\jdk1.5.0_06
    et j'ai aussi essayé avec
    C:\Program Files\Java\jdk1.5.0_06\bin

    mais ça ne vas toujours pas

  6. #6
    Membre éclairé

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2002
    Messages
    346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2002
    Messages : 346
    Points : 737
    Points
    737
    Par défaut
    Et quand tu fait, en ligne de commande, java -version, il te renvoit bien 1.5.0_06?

  7. #7
    Invité
    Invité(e)
    Par défaut
    oui


    [ je dois partir sinon je vais rater mon traine, Merci, à demain ]

  8. #8
    Membre éclairé

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2002
    Messages
    346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2002
    Messages : 346
    Points : 737
    Points
    737
    Par défaut
    Tu peut aussi vérifié que dans ton classpath, il n'y a pas des JRE qui sont avant ton JDK.

    Apparement, il ne trouve pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    com.sun.tools.javac.Main
    Donc il ne trouve pas le compilateur, par contre il trouve bien JAVA sinon rien ne marcherait. Le compilateur est dans tools.jar qui est un JAR du JDK, mais n'est pas présent dans le JRE.

    Donc le seul scénario que je voit :
    - dans ton classpath tu as une JRE 1.5.0_06
    - dans ton JAVA_HOME tu as un JDK 1.5.0_06

    Essaye donc de mettre JAVA_HOME au début de ton classpath si il est à la fin ou a la fin de ton classpath si il est au début pour vérifier.

    Sinon, ben, je me trompe peut être du tout au tout

  9. #9
    Invité
    Invité(e)
    Par défaut
    Voici mon classpath :
    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
    <?xml version="1.0" encoding="UTF-8"?>
    <classpath>
    	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
    	<classpathentry kind="var" path="TOMCAT_HOME/common/lib/servlet-api.jar"/>
    	<classpathentry kind="var" path="TOMCAT_HOME/common/lib/jasper-runtime.jar"/>
    	<classpathentry kind="var" path="TOMCAT_HOME/common/lib/jsp-api.jar"/>
    	<classpathentry kind="lib" path="WEB-INF/lib/commons-collections-3.1.jar"/>
    	<classpathentry kind="lib" path="WEB-INF/lib/commons-dbcp-1.2.1.jar"/>
    	<classpathentry kind="lib" path="WEB-INF/lib/commons-pool-1.3.jar"/>
    	<classpathentry kind="lib" path="WEB-INF/lib/mysql-connector-java-3.1.12-bin.jar"/>
    	<classpathentry kind="lib" path="WEB-INF/lib/ojdbc14.jar"/>
    	<classpathentry kind="src" path="WEB-INF/src"/>
    	<classpathentry kind="src" path="WEB-INF/src/mesclasses"/>
    	<classpathentry kind="src" path="WEB-INF/src/messervlets"/>
    	<classpathentry output="work" kind="src" path="work"/>
    	<classpathentry kind="output" path="WEB-INF/classes"/>
    </classpath>
    Je ne vois pas de rapport a le JRE..

  10. #10
    Invité
    Invité(e)
    Par défaut
    Premièré réponse :
    http://tomcat.apache.org/tomcat-5.0-doc/setup.html
    Citation Envoyé par http://tomcat.apache.org/tomcat-5.0-doc/setup.html
    Java location: The installer will use the registry or the JAVA_HOME environment variable to determine the base path of the JDK or a JRE. If only a JRE (or an incorrect path) is specified, Tomcat will run but will be unable to compile JSP pages at runtime. Either all webapps will need to be precompiled (this can be easily done using the Tomcat deployer), or the lib\tools.jar file from a JDK installation must be copied to the common\lib path of the Tomcat installation.
    Ca à le mérite de fonctionner correctement et puis si c'est dans la doc officielle c'est pas trop vu comme du bidoullage. Mais je n'ai toujours pas trouvé comment indiquer d'utiliser la JDK dans le classpath..

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

Discussions similaires

  1. Questions sur la compilation des sources [2.4]
    Par cryo94 dans le forum Apache
    Réponses: 2
    Dernier message: 10/10/2013, 17h49
  2. Question sur la compilation des classes
    Par azerty.123.450 dans le forum Visual Studio
    Réponses: 3
    Dernier message: 26/02/2010, 16h32
  3. [JSP][Tomcat] : forcer la compilation des jsp.
    Par Ekros dans le forum Tomcat et TomEE
    Réponses: 5
    Dernier message: 29/04/2004, 12h27
  4. question sur le format des images ..
    Par vbcasimir dans le forum Langages de programmation
    Réponses: 7
    Dernier message: 28/08/2003, 13h08

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