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 :

[Struts] Problème de bean:message


Sujet :

Struts 1 Java

  1. #1
    boukay
    Invité(e)
    Par défaut [Struts] Problème de bean:message
    Bonjour,

    Je me suis mis à Struts depuis 1 semaine et je suis bloqué sur un programme tout simple :-(
    J'essaie d'afficher la page (login.jsp) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     <%@ page language="java" %>
    <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
    <%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
     
    <html>
        <head>
            <title> <bean:message key="app.title" /> </title>
        </head>
        <body>
        </body>
    </html>
    Mais en lançant l'url, j'obtiens l'erreur :

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

    exception

    org.apache.jasper.JasperException
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:373)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:245)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)


    cause mère

    java.lang.NullPointerException
    org.apache.struts.taglib.TagUtils.retrieveMessageResources(TagUtils.java:1161)
    org.apache.struts.taglib.TagUtils.message(TagUtils.java:1024)
    etc ..........................
    J'ai tout essayé, ça vient du bean:message apparement car quand je mets TOTO dans le title ça marche !
    Il y a bien un fichier ApplicationRessources.properties, qui est bien renseigné ...
    Une partie du struts-config est :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     <?xml version="1.0" encoding="ISO-8859-1" ?>
    <!DOCTYPE struts-config PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN"
    "http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd">
     
    <struts-config>
        <message-resources parameter="res.ApplicationRessources"/>
    etc ....................................

    J'ai bien référencé les taglib dans le fichier web.xml ...
    Et ces fichiers sont dans le répertoire WEB-INF de l'application ...

    Est-ce que quelqu'un pourrait m'aider car je commence à etre dégouté de ce framework où il faut 15.000 fichiers pour créer une application ....
    Merci d'avance.

    Thierry
    Dernière modification par Ricky81 ; 16/05/2006 à 22h26.

  2. #2
    Membre régulier
    Avatar de Jaxofun
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 108
    Points : 84
    Points
    84
    Par défaut
    Verifie que tu as bien :

    Dans Struts-config.xml qui doit se trouver dans /WEB-INF
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ...
    <message-resources parameter="ApplicationRessources"/>
    ...
    Dans ApplicationRessources.properties qui doit se trouver dans /WEB-INF/classes

  3. #3
    boukay
    Invité(e)
    Par défaut
    Le fichier "ApplicationResources" est bien renseigné ...
    J'ai mis ce fichier dans un sous-répertoire "res", mais même en le mettant à la racine de "classes", cela donne le même résultat ...
    J'ai pourtant pompé un exemple du livre de James Goodwill, la référence en la matière, semble t'il ....

  4. #4
    Membre régulier
    Avatar de Jaxofun
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 108
    Points : 84
    Points
    84
    Par défaut
    Ouais mais y a tellement de différence entre chaque version de struts que ça en devient un vrai casse-tete. Alors ton bouquin s'il a un peu d'age il est deja perimé .

    Donne donc l'implémentation compléte de ton fichier struts-config.xml et web.xml. Je verrai ce que je peut faire.

  5. #5
    boukay
    Invité(e)
    Par défaut
    Je suis avec la version 1.2.7 de Struts et mon bouquin 1.1 ...
    J'ai déjà vu une différence avec la balise Form entre ces 2 versions ...

    Le fichier struts-config.xml :

    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
    <?xml version="1.0" encoding="ISO-8859-1" ?>
    <!DOCTYPE struts-config PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN"
    "http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd">
     
    <struts-config>
    	<message-resources parameter="eyrolles.ApplicationRessources"/>
    	<data-sources>
    		<data-source>
    			<set-property property="driverClass" value="org.gjt.mm.mysql.Driver"/>
    			<set-property property="url" value="jdbc:oracle:localhost/emp"/>
    			<set-property property="maxCount" value="5"/>
    			<set-property property="minCount" value="1"/>
    			<set-property property="user" value="scott"/>
    			<set-property property="password" value="scott"/>
    		</data-source>
    	</data-sources>
     
    	<form-beans>
    		<form-bean name="loginForm" type="com.eyrolles.LoginForm" />
    	</form-beans>
     
    	<global-forwards>
    		<forward name="login" path="/pages/login.jsp"/>
    	</global-forwards>
     
    	<action-mappings>
    		<action
    			path="/Login"
    			type="com.eyrolles.LoginAction"
    			validate="true"
    			input="/pages/login.jsp"
    			name="loginForm"
    			scope="request">
    			<forward name="success" path="/EmployeListe.do"/>
    		</action>
     
    		<action
    			path="/EmployeListe"
    			type="com.eyrolles.EmployeListeAction"
    			scope="request">
    			<set-property property="loginRequired" value="true"/>
    			<forward name="success" path="/pages/employeliste.jsp"/>
    		</action>
    	</action-mappings>	
    </struts-config>


    Le fichier web.xml :

    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
    <?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>action</servlet-name>
    		<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
    		<init-param>
    			<param-name>debug</param-name>
    			<param-value>5</param-value>
    		</init-param>
    		<init-param>
    			<param-name>config</param-name>
    			<param-value>/WEB-INF/struts-config.xml</param-value>
    		</init-param>
    		<init-param>
    			<param-name>mapping</param-name>
    			<param-value>com.eyrolles.EmployesActionMapping</param-value>
    		</init-param>
    		<load-on-startup>1</load-on-startup>
    	</servlet>
     
    	<servlet-mapping>
    		<servlet-name>action</servlet-name>
    		<url-pattern>*.do</url-pattern>
    	</servlet-mapping>
     
    	<welcome-file-list>
    		<welcome-file>pages/login.jsp</welcome-file>
    	</welcome-file-list>
     
    	<taglib>
    		<taglib-uri>/WEB-INF/struts-html.tld</taglib-uri>
    		<taglib-location>/WEB-INF/struts-html.tld</taglib-location>
    	</taglib>
     
    	<taglib>
    		<taglib-uri>/WEB-INF/struts-logic.tld</taglib-uri>
    		<taglib-location>/WEB-INF/struts-logic.tld</taglib-location>
    	</taglib>
     
    	<taglib>
    		<taglib-uri>/WEB-INF/struts-bean.tld</taglib-uri>
    		<taglib-location>/WEB-INF/struts-bean.tld</taglib-location>
    	</taglib>
     
    </web-app>
    Merci de ton aide ...

    Balises [Code] rajoutées par Ricky81
    Merci d'y penser à l'avenir

  6. #6
    Membre expérimenté

    Inscrit en
    Décembre 2004
    Messages
    584
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 584
    Points : 1 374
    Points
    1 374
    Par défaut
    Perso j'ai aussi un soucis entre version 1.0 et 1.1 : il faut bien faire attention aux fichiers que l'on inclut au projet, cad bien prendre les jar de la bonne version. Perso ça m'avait réglé le type de problème dont tu parles.

    En espérant aider,
    ZedroS

  7. #7
    Membre régulier
    Avatar de Jaxofun
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 108
    Points : 84
    Points
    84
    Par défaut
    M'est avis que tu a mal définis le chemin de ton fichier ApplicationRessources.properties. Au vu du reste de la hierarchie de ton application, ne serait-ce pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <message-resources parameter="com.eyrolles.ApplicationRessources"/>
    au lieu de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <message-resources parameter="eyrolles.ApplicationRessources"/>
    (dans le fichier struts-config.xml)

  8. #8
    Membre régulier
    Avatar de Jaxofun
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 108
    Points : 84
    Points
    84
    Par défaut
    De plus le fichier properties par defaut de struts est ApplicationResources avec un seul "s", verifie l'orthographe du tient !

  9. #9
    boukay
    Invité(e)
    Par défaut
    Le fichier resources est bien dans un répertoire "eyrolles" sous sous "classes" (il y a aussi un package "com.eyrolles" sous "classes") ...
    J'ai corrigé en enlevant le "s" en trop dans "ressources", car bien sûr ça n'aurait pas marché ! ;-)
    Mais ça ne marche toujours pas ....
    Pour la gestion des versions (pour Zedros), j'ai récupéré la version 1.1 de Struts et j'ai mis toutes les librairies à la place de la version 1.2.7, et ça marche !
    Comme j'ai très peu de fichiers, je pense donc que ce sont les deux fichiers "web.xml" et "struts-config.xml" qui sont mal formatés pour cette nouvelle version du framework ....
    Je regarde l'exemple fourni dans la version 1.2.7, pour voir c'est quoi ces différences ....

  10. #10
    boukay
    Invité(e)
    Par défaut
    Bon, j'ai avancé ... il semblerait que ce soit la balise "set-property" de la deuxième "action-mapping" du fichier struts-config qui fait merder ...
    Mais je ne comprend toujours pas pourquoi cela marche avec la version 1.1 de Struts (j'ai regardé les fichiers *.dtd de ces deux versions pour le fichier "struts-config", il ne semble pas avoir de différence pour le "set-property") ....
    En tous cas, cela me permet d'avancer ...
    Merci pour votre aide !

    Thierry

Discussions similaires

  1. [Struts] <bean:message key="myKey"/>
    Par gamel dans le forum Struts 1
    Réponses: 6
    Dernier message: 09/05/2006, 18h53
  2. [Struts] Récupérer la String d'un <bean:message
    Par worldchampion57 dans le forum Struts 1
    Réponses: 2
    Dernier message: 12/04/2006, 16h21
  3. [struts] bean:message
    Par meli0207 dans le forum Struts 1
    Réponses: 1
    Dernier message: 23/02/2006, 22h23
  4. [struts]i18n et bean:message
    Par Sanberi dans le forum Struts 1
    Réponses: 4
    Dernier message: 24/01/2006, 16h23
  5. [ Struts] pbs avec <bean:message key=.../>
    Par njac dans le forum Struts 1
    Réponses: 3
    Dernier message: 01/12/2004, 15h08

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