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 :

compiler toutes les jsp au démarrage de Tomcat


Sujet :

Tomcat et TomEE Java

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 8
    Points : 7
    Points
    7
    Par défaut compiler toutes les jsp au démarrage de Tomcat
    bonjour,

    est-ce que quelqu'un connaît le moyen de faire en sorte que l'ensemble des jsp d'un site soient compilées au lancement du serveur tomcat et non pas au premier appel de la jsp (le premier utilisateur se prend "dans la tronche" les temps de compilation) ?

    Merçi pour votre aide

    A+

  2. #2
    Expert éminent sénior


    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    7 856
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 7 856
    Points : 34 380
    Points
    34 380

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 67
    Points : 40
    Points
    40
    Par défaut
    Bonjour je suis débutant avec tomcat.j'ai un probleme, j'essai de connecter une servlet a une base de donnée postgresql en utilisant un formulaire. Je n'ai pa d'erreur lors de l'enregistrement de mon programme sous eclipse. Lorsque j'utilise une servlet normalement sa marche mais kan je veu connecter ma servlet a une base sa ne marche pas. j'ai une erreur du type:

    type Rapport d'exception

    message

    description Le serveur a rencontré une erreur interne () qui l'a empèché de satisfaire la requête.

    exception

    javax.servlet.ServletException: Erreur d'allocation à une instance de servlet
    at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:616)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:163)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:595)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:432)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:954)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:138)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:595)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:432)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:954)
    at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2459)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:132)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:595)
    at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:118)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:593)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:116)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:593)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:432)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:954)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:126)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:595)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:432)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:954)
    at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:152)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
    at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
    at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
    at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
    at java.lang.Thread.run(Thread.java:534)


    cause mère

    java.lang.UnsupportedClassVersionError: Connectbase (Unsupported major.minor version 49.0)
    at java.lang.ClassLoader.defineClass0(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:539)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:123)
    at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1786)
    at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1048)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1506)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1385)
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:829)
    at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:612)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:163)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:595)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:432)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:954)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:138)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:595)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:432)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:954)
    at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2459)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:132)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:595)
    at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:118)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:593)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:116)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:593)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:432)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:954)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:126)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:595)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:432)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:954)
    at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:152)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
    at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
    at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
    at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
    at java.lang.Thread.run(Thread.java:534)
    si quelqu'un peut m'aider ce serait tres gentil. Merci d'avance

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 67
    Points : 40
    Points
    40
    Par défaut
    mes codes sources sont:

    servlet

    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
    import java.io.IOException;
    import java.io.PrintWriter;
    import java.sql.Connection;
    import java.sql.Driver;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.Statement;
     
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.io.IOException;
     
    public class Connectbase extends HttpServlet{
    	public void doGet(HttpServletRequest request, HttpServletResponse response) 
    	throws ServletException, IOException{
     
    		response.setContentType("text/html");
    		PrintWriter out=response.getWriter();
     
    		String nom=request.getParameter("Nom");
    		String motPasse=request.getParameter("Password");
     
    		out.println("<html>");
    		out.println("<head>");
    		out.println("<title>Affichage table</title>");
    		out.println("</head>");
    		out.println("<body>");
    		out.println("<h1>Table!</h1>");		
     
    		try{
     
    			String url="jdbc:postgresql://localhost:5432";
    			Class driverClass=Class.forName("org.postgresql.Driver"); 
    			Driver driver = (Driver)driverClass.newInstance();
    			DriverManager.registerDriver(driver);
    			Connection conn=DriverManager.getConnection(url,nom,motPasse);	
    			Statement smt =conn.createStatement();
     
    			String sql = "select tablename from pg_tables where schemaname='public'";
    			ResultSet rs=smt.executeQuery(sql);
     
    			while(rs.next()){                                                           
    				String s=rs.getString("tablename");
    				out.println(s);
    				out.println("bonjour");
    			}
     
    		}catch(Exception e){
    			System.out.println("Erreur : " + e.getMessage());
    			log("Erreur" + e.getMessage(), e );
    		}
     
    		out.println("</body>");
    		out.println("</html>");
     
    	}                                 
    }

    fichier web.xml

    Code XML : 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
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <!DOCTYPE web-app
         PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
        "http://java.sun.com/dtd/web-app_2_3.dtd">
    <web-app>
    	<servlet>
    		<servlet-name>Hello</servlet-name>
    		<servlet-class>Bonjour</servlet-class>
    	</servlet>
    	<servlet>
    		<servlet-name>formulaire</servlet-name>
    		<servlet-class>Dump</servlet-class>
    	</servlet>
    	<servlet>
    		<servlet-name>affichageNomTableau</servlet-name>
    		<servlet-class>Connectbase</servlet-class>
    	</servlet>
    	<servlet-mapping>
    		<servlet-name>Hello</servlet-name>
    		<url-pattern>/servlet/Hz</url-pattern>
    	</servlet-mapping>
    	<servlet-mapping>
    		<servlet-name>formulaire</servlet-name>
    		<url-pattern>/servlet/form</url-pattern>
    	</servlet-mapping>
    		<servlet-mapping>
    		<servlet-name>affichageNomTableau</servlet-name>
    		<url-pattern>/servlet/tab</url-pattern>
    	</servlet-mapping>
    </web-app>

    Formulaire

    Code XML : 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
    <html>
      <head>
     
        <title></title>
        <meta content="">
        <link rel="stylesheet" type="text/css" href="style2.css"/>
      </head>
      <body>
      <form ="formulaire" method="post" action="http://localhost:8080/servlet/tab">
      <table>
      <tr><td>Nom :</td><td colspan="2"><input type="text" name="Nom"></td></tr>
      <tr><td>Pass :</td><td colspan="2"><input type="text" name="Password"></td></tr>
      <tr><td></br></tr></td>
     
      <tr><td></br></br></td></tr>
      <tr><td><input type="reset" value="annuler"></td>
      <td><input type="submit" value="rechercher"></td>
       </tr>  
      </table>
      </form>
      </body>
    </html>

    Je travail dans le repertoire Root et j'ai mis le fichier web.xml dans le repertoire web-inf de root, ainsi que deux repertoire classes qui contient mon fichier class et java, et lib qui contient le driver postgresql

  5. #5
    Inactif  
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    2 189
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 189
    Points : 2 336
    Points
    2 336
    Par défaut
    Citation Envoyé par mazizou
    java.lang.UnsupportedClassVersionError: Connectbase (Unsupported major.minor version 49.0)
    tu dois peut être voir une version du driver qui n est pas supporté par ton jdk

    ps n'oublie pas les balises [ code ] [ / code ] lorsque tu post du code ...

  6. #6
    Nouveau membre du Club
    Inscrit en
    Décembre 2005
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 25
    Points : 29
    Points
    29
    Par défaut
    Bonjour,

    Je souhaite précompiler mes JSP depuis ANT (je débute) avant de les mettre dans mon WAR. J'ai consulté les pages de doc de ANT notamment celle relative à jspc, ainsi que la page de Tomcat décrivant la tâche que je souhaiter réaliser.

    La tâche s'execute mais je n'obtiens aucun resultat, pourtant le répertoire des sources contient bien des JSP et les répertoires de destination des tâches de compilation sont bien créés.

    Je ne vois absolument pas d'où peut provenir l'erreur, par conséquent si quelqu'un pouvait m'aider, ça serait fort aimable de sa part.

    ci-dessous, le xml des tâches utilisées, ainsi que le resultat de l'execution du fichier ANT.

    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
     
      	<target name="precompileJSP" depends="init">
     
    	<echo message="${catalina.home}"/>
     
    		<!-- see http://jakarta.apache.org/tomcat/tomcat-5.5-doc/printer/jasper-howto.html -->
    		<taskdef classname="org.apache.jasper.JspC" name="jasper2">
    			<classpath id="jspc.classpath">
     				<fileset dir="${jonas.root}/lib/catalina">
    					<include name="*.jar"/>
    				</fileset>
    				<fileset dir="${jonas.root}/lib/commons/jonas/jakarta-commons">
    					<include name="commons-logging-api.jar"/>
    				</fileset>
     				<fileset dir="${catalina.home}/server/lib">
    					<include name="*.jar"/>
    				</fileset>
    				<fileset dir="${catalina.home}/common/lib">
    					<include name="*.jar"/>
    				</fileset>
    			</classpath>
    		</taskdef>
     
     
    		<delete dir="${build}"/>
    		<mkdir dir="${build}/jspClasses"/>
    		<delete dir="${jspJasper}"/>
     		<mkdir dir="${jspJasper}"/>
     
    		<echo message="lancement de jasper..."/>
    		<jasper2 
    			validateXml="false" 
    			uriroot="${projectLocation}" 
    			webXmlFragment="${projectLocation}/WEB-INF/generated_web.xml" 
    			outputDir="${jspJasper}"/>
    		<echo message="Jasper terminé -->|"/>
     
     
      		<javac srcdir="${jspJasper}" destdir="${build}/jspClasses" encoding="UTF-8"
    		verbose="true" failonerror="false">
    			<classpath refid="app.classPath"/>
    		</javac>
    		<echo message="Javac terminé"/> -->
     
    	</target>
    clean:
    [delete] Deleting directory C:\dev\JOnAS-4.4.3\work\webapps\jonas\app\output
    init:
    [mkdir] Created dir: C:\dev\JOnAS-4.4.3\work\webapps\jonas\app\output
    [mkdir] Created dir: C:\dev\JOnAS-4.4.3\work\webapps\jonas\app\output\wars
    precompileJSP:
    [echo] C:\dev\JOnAS-4.4.3/lib/catalina
    [delete] Deleting directory C:\dev\JOnAS-4.4.3\work\webapps\jonas\app\build
    [mkdir] Created dir: C:\dev\JOnAS-4.4.3\work\webapps\jonas\app\build\jspClasses
    [mkdir] Created dir: C:\dev\JOnAS-4.4.3\work\webapps\jonas\app\build\jspJasper
    [echo] lancement de jasper...
    [echo] Jasper terminé -->|
    [echo] Javac terminé
    BUILD SUCCESSFUL
    Total time: 1 minute 7 seconds

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Août 2005
    Messages : 46
    Points : 58
    Points
    58
    Par défaut
    Salut !
    Je n'utilise pas Postgre mais mysql, mais si le fonctionnement est similaire tu
    dois préciser la base que tu utilises :
    essaye
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String url="jdbc:postgresql://localhost:5432/ta_base";
    au lieu de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String url="jdbc:postgresql://localhost:5432";

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Août 2005
    Messages : 46
    Points : 58
    Points
    58
    Par défaut
    Au fait ma réponse est pour Mazizou...
    Je précise car apparemment il y a plusieurs discussions en cours...

Discussions similaires

  1. Réponses: 4
    Dernier message: 21/04/2014, 13h52
  2. Inclure une CSS globale à toutes les jsp d'un projet
    Par dessty dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 07/06/2011, 15h20
  3. utiliser une seule servlet pour toutes les jsp
    Par DoubleU dans le forum Servlets/JSP
    Réponses: 13
    Dernier message: 20/09/2007, 19h30
  4. Réponses: 9
    Dernier message: 29/03/2006, 21h41
  5. [TOMCAT]Est ce que tomcat compile à chaque demarage les jsp
    Par miloud dans le forum Tomcat et TomEE
    Réponses: 3
    Dernier message: 06/06/2005, 13h32

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