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

Struts 1 Java Discussion :

installation de Struts 1.3.10


Sujet :

Struts 1 Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2009
    Messages : 6
    Par défaut installation de Struts 1.3.10
    sur le site de Apache, j'ai téléchargé la dernière version de Struts 1.3 (1.3.10).
    j'ai téléchargé le Core de Tomcat 6
    J'ai essayé de faire fonctionner l'exemple struts-blank-1.3.10.war en le mettant sous $TOMCAT_HOME/webapps/ puis en démarrant TOMCAT $TOMCAT_HOME/bin/startup.bat
    quand le lance l'URL http://localhost:8080/struts-blank-1.3.10/ j'obtiens l'exception:
    java.lang.NoSuchMethodError: javax.servlet.jsp.tagext.TagAttributeInfo.<init>(Ljava/lang/String;ZLjava/lang/String;ZZLjava/lang/String;ZZLjava/lang/String;Ljava/lang/StringV org.apache.jasper.compiler.TagLibraryInfoImpl.createAttribute(TagLibraryInfoImpl.java:584)
    J'avais obtenu exactement la même exception quand j'avais essayé de développer un projet Struts avec Eclipse Ganymède et Tomcat 5.5

    Quelle bibliothèque me manque t'il (normalement toutes les bibliothèques sont sous le WEB-INF/lib du war?)?

  2. #2
    Expert confirmé

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Par défaut
    Peux-tu montrer le code du web.xml contenu dans le war ?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2009
    Messages : 6
    Par défaut
    Citation Envoyé par c_nvy Voir le message
    Peux-tu montrer le code du web.xml contenu dans le war ?
    Le Web.xml contient:
    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
    31
    32
    <!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>
      <display-name>Struts Blank Application</display-name>
     
      <!-- Standard Action Servlet Configuration -->
      <servlet>
        <servlet-name>action</servlet-name>
        <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
        <init-param>
          <param-name>config</param-name>
          <param-value>/WEB-INF/struts-config.xml</param-value>
        </init-param>
        <load-on-startup>2</load-on-startup>
     </servlet>
     
     
      <!-- Standard Action Servlet Mapping -->
      <servlet-mapping>
        <servlet-name>action</servlet-name>
        <url-pattern>*.do</url-pattern>
      </servlet-mapping>
     
     
      <!-- The Usual Welcome File List -->
      <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
      </welcome-file-list>
     
    </web-app>

    Autre élément, la build.xml de Ant:
    Il n'y a pas de servlet.jar dans le lib de Tomcat seulement un servlet-api.jar
    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
    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
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    <project name="blank" basedir="../" default="all">
     
     
        <!-- Local system paths -->
        <property name="servlet.jar" value="../../common/lib/servlet-api.jar"/>
        <property name="distpath.project" value="dist"/>
     
     
        <!-- Project settings -->
        <property name="project.title" value="Apache Struts Blank "/>
        <property name="project.distname" value="blank"/>
        <property name="project.version" value="1.3"/>
     
     
        <!-- Path settings -->
        <property name="doc.path" value="./doc/api"/>
        <property name="doc.src" value="./src/java"/>
     
     
        <!-- classpath for Struts 1.3 -->
        <path id="compile.classpath">
            <pathelement path ="lib/commons-beanutils.jar"/>
            <pathelement path ="lib/commons-digester.jar"/>
            <pathelement path ="lib/struts.jar"/>
            <pathelement path ="${servlet.jar}"/>
            <pathelement path ="classes"/>
            <pathelement path ="${classpath}"/>
        </path>
     
     
        <!-- Check timestamp on files -->
        <target name="prepare">
            <tstamp/>
        </target>
     
     
        <!-- Copy any resource or configuration files -->
        <target name="resources">
            <copy todir="classes" includeEmptyDirs="no">
                <fileset dir="src/java">
                <patternset>
                    <include name="**/*.conf"/>
                    <include name="**/*.properties"/>
                    <include name="**/*.xml"/>
                </patternset>
                </fileset>
            </copy>
        </target>
     
     
        <!-- Normal build of application -->
        <target name="compile" depends="prepare,resources">
            <javac srcdir="src/java" destdir="classes">
                <classpath refid="compile.classpath"/>
            </javac>
        </target>
     
     
        <!-- Remove classes directory for clean build -->
        <target name="clean"
          description="Prepare for clean build">
          <delete dir="classes"/>
          <mkdir  dir="classes"/>
        </target>
     
     
        <!-- Build Javadoc documentation -->
        <target name="javadoc"
         description="Generate JavaDoc API docs">
            <delete dir="./doc/api"/>
            <mkdir dir="./doc/api"/>
            <javadoc sourcepath="./src/java"
                destdir="./doc/api"
                classpath="${servlet.jar}"
                packagenames="*"
                author="false"
                private="true"
                version="true"
                windowtitle="${project.title} API Documentation"
                doctitle="&lt;h1&gt;${project.title} Documentation (Version ${project.version})&lt;/h1&gt;"
                bottom="Copyright © 2002-2005">
                <classpath refid="compile.classpath"/>
            </javadoc>
        </target>
     
     
        <!-- Build entire project -->
        <target name="project" depends="clean,prepare,compile,javadoc"/>
     
     
        <!-- Create binary distribution -->
        <target name="dist"
            description="Create binary distribution">
     
          <mkdir
            dir="${distpath.project}"/>
          <jar
            jarfile="${distpath.project}/${project.distname}.jar"
            basedir="./classes"/>
          <copy
            file="${distpath.project}/${project.distname}.jar"
            todir="${distpath.project}"/>
     
          <war
            basedir="../"
            warfile="../../${project.distname}.war"
            webxml="web.xml">
            <exclude name="**/${distpath.project}/**"/>
           </war>
          <move file="../../${project.distname}.war" tofile="${distpath.project}/${project.distname}.war" />
     
        </target>
     
     
        <!-- Build project and create distribution-->
        <target name="all" depends="project,dist"/>
     
    </project>

  4. #4
    Expert confirmé

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Par défaut
    Dans ta variable d'environnement CLASSPATH, tu ne pointerais pas par hasard sur les jars servlet-api.jar et jsp-api.jar d'une ancienne version de Tomcat ?

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2009
    Messages : 6
    Par défaut
    Citation Envoyé par c_nvy Voir le message
    Dans ta variable d'environnement CLASSPATH, tu ne pointerais pas par hasard sur les jars servlet-api.jar et jsp-api.jar d'une ancienne version de Tomcat ?
    Pour savoir avec quelle version de servlet-api cette application - livrée avec le paquet struts-1.3.10 - a été compilée je suis allé dans le pom.xml de Maven également livré dans le war; lea section dependencies donne:
    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
    <dependencies>
          <dependency>
             <groupId>${pom.groupId}</groupId>
             <artifactId>struts-taglib</artifactId>
             <version>${pom.version}</version>
          </dependency>
          <dependency>
             <groupId>${pom.groupId}</groupId>
             <artifactId>struts-tiles</artifactId>
             <version>${pom.version}</version>
          </dependency>
          <dependency>
             <groupId>javax.servlet</groupId>
             <artifactId>servlet-api</artifactId>
             <version>2.3</version>
             <scope>provided</scope>
          </dependency>
       </dependencies>
    Quand je lance Tomcat, je ne spécifie aucun Classpath et je suppose que le war va chercher le servlet-api.jar sous $TOMCAT_HOME/lib
    Par contre aucun des compilateurs (ant ou Maven) ne spécifie de jsp-api alors que la seule ressource de ce projet welcome.jsp utilie les taglibs:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
    <%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
    <%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %>

  6. #6
    Expert confirmé

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Par défaut
    Sur ton poste, il faut vérifier dans les propriétés système, et plus précisément dans les variables d'environnement, s'il y a une variable CLASSPATH définie, et si oui, voir ce qu'elle a comme valeur.
    Quand tu lances Tomcat via le startup.bat, il exécute catalina.bat et si tu regardes dedans, tu verras qu'il récupère ce qui est défini dans la variable CLASSPATH, qu'il y ajoute un ou plusieurs jars suivant ta config et qu'il lance java avec en paramètre cette variable CLASSPATH.

    En fait, d'après le message d'erreur, le constructeur de la classe TagAttributeInfo qu'il cherche à exécuter n'a pas les paramètres attendus, ce qui signifie donc que ce n'est pas la bonne version de cette classe qui est exécutée.
    Donc, ceci suppose que tu pointes quelque part sur une autre version du jar jsp-api.jar (dans lequel se trouve la classe TagAttributeInfo) que celui livré avec Tomcat 6.
    C'est pourquoi je t'ai demandé de regarder si la variable CLASSPATH est définie, et si par hasard dans sa valeur, il n'y a pas de référence au jar jsp-api.jar ou au répertoire lib d'une autre version de Tomcat (si toutefois tu as d'autres versions de Tomcat sur ton poste).

    Sinon, si tu regardes bien le contenu du war struts-blank-1.3.10.war et plus précisément le web.xml, tu verras que la première jsp appelée est index.jsp (car elle est spécifiée dans la balise welcome-file), et dans cette page, il y a un tag logic:redirect vers le forward welcome. Je suppose donc que c'est à l'exécution de ce tag que le constructeur de TagAttributeInfo est appelé.

Discussions similaires

  1. Installation de struts
    Par bim92i dans le forum Struts 1
    Réponses: 1
    Dernier message: 03/02/2009, 14h20
  2. installation de struts 2
    Par Trulane dans le forum Struts 2
    Réponses: 7
    Dernier message: 14/01/2008, 23h08
  3. Installation de struts
    Par gentil dans le forum Struts 2
    Réponses: 2
    Dernier message: 02/01/2008, 12h35
  4. [ Tomcat ]Install Tomcat Struts débutant
    Par pilou007 dans le forum Tomcat et TomEE
    Réponses: 17
    Dernier message: 28/04/2006, 16h54
  5. [STRUTS] [TOMCAT] Installation struts sur tomcat
    Par haderach dans le forum Tomcat et TomEE
    Réponses: 2
    Dernier message: 29/03/2006, 09h43

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