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 :

java.lang.IllegalArgumentException: Resources cannot be null.


Sujet :

Struts 1 Java

  1. #1
    Membre confirm�
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    68
    D�tails du profil
    Informations personnelles :
    �ge : 42
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 68
    Par d�faut java.lang.IllegalArgumentException: Resources cannot be null.
    Bonjour � tous,

    je suis occup� � d�veloppez une petite application en Struts, Spring et sans javascript... Lorsque je valide le formulaire suivante :

    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
     
    public class MovieForm extends ValidatorForm {
     
            .....
     
    	public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) {
    		ActionErrors errors = super.validate(mapping, request);
    		if (errors == null) {
    			errors = new ActionErrors();
    		}
     		if (StringUtils.isBlank(getTitle())) {
    			  errors.add(ActionErrors.GLOBAL_MESSAGE, new ActionMessage("movie.error.title"));
    		}
    		String duration = getDuration();
    		if (StringUtils.isBlank(getDuration()) || (!StringUtils.isNumeric(duration))) {
    			errors.add(ActionErrors.GLOBAL_MESSAGE, new ActionMessage("movie.error.duration"));
    		}
     
    		if (StringUtils.isBlank(getKind())) {
    			  errors.add(ActionErrors.GLOBAL_MESSAGE, new ActionMessage("movie.error.kind"));
    		}		  
    		if (StringUtils.isBlank(getKind())) {
    			  errors.add(ActionErrors.GLOBAL_MESSAGE, new ActionMessage("movie.error.media"));
    		}		  
    		return errors;
    	}
    avant m�me qu'il ne retourne vers l'action ad�quate, Struts m'envoit une erreur :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    java.lang.IllegalArgumentException: Resources cannot be null.
    	org.apache.commons.validator.Validator.<init>(Validator.java:161)
    	org.apache.struts.validator.Resources.initValidator(Resources.java:475)
    	org.apache.struts.validator.ValidatorForm.validate(ValidatorForm.java:104)
    	movie.MovieForm.validate(MovieForm.java:78)
    	org.apache.struts.action.RequestProcessor.processValidate(RequestProcessor.java:950)
    	org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:207)
    	org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
    	org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
    	org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:75)
    Je ne comprends pas, c'est � se flinguer. Ca doit surement �tre tout b�te :-) Quelqu'un aurait une id�e ? Voici le 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
    47
    48
     
    <?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>
    	<!-- ========== Form Bean Definitions =================================== -->
    	<form-beans>
    		<form-bean name="movieForm" type="movie.MovieForm"/>
    	</form-beans>
     
     
    	<!-- ========== Action Mapping Definitions ============================== -->
    	<action-mappings>
    		<action path="/startup"
    				type="startup.StartupAction"
    				parameter="init"
    				validate="false">
    		  	    <forward name="success" path=".startup"/>
    		</action>	
     
    		<action path="/editMovie"
    				type="movie.MovieAction"
    				name="movieForm"
    				parameter="init"
    				validate="false">
    		  	    <forward name="success" path=".movie.edit"/>
    		</action>			
     
    		<action path="/movieSave"
    				type="movie.MovieAction"
    				name="movieForm"
    				parameter="save"
    				input=".movie.edit"
    				validate="true">
    		  	    <forward name="success" path=".movie.edit"/>
    		</action>					
    	</action-mappings>
     
    	<message-resources parameter="ApplicationResources"/>
     
    	<!-- ========== Plugins ============================== -->
    	<plug-in className="org.apache.struts.tiles.TilesPlugin" >
    		<set-property property="definitions-config" value="/WEB-INF/tiles-defs.xml"/>
    		<set-property property="definitions-debug" value="1" />
    		<set-property property="definitions-parser-details" value="0" />
    		<set-property property="definitions-parser-validate" value="true" />
    	</plug-in>
     
    </struts-config>
    Pour celui ou celle qui arrive � m'aider ou qui a tent� de m'aider je l'en remercie d�j� d'avance.

    Coyote

  2. #2
    Expert confirm�
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Par d�faut
    Bonjour.
    Dans ton struts-config.xml, t'as mis :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    <message-resources parameter="ApplicationResources"/>
    L'erreur, sauf erreur de ma part, provient certainement du fait que Struts ne trouve pas le fichier de ressources indiqu� la dessus.

    V�rifies STP si tu as bien un fichier ApplicationResources.properties ou peut �tre une version locale ApplicationResources_FR_fr.properties par exemple dans la racine du dossier WEB-INF/classes/.

  3. #3
    Membre confirm�
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    68
    D�tails du profil
    Informations personnelles :
    �ge : 42
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 68
    Par d�faut Ce que je n'ai pas dit :-)
    Salut,

    tout d'abord merci pour ta r�ponse rapide! Ce que je n'ai pas dit, c'est que j'utilise <bean:message key=""/> dans mes JSP et qu'il me retrouve les messages d�finis dans ApplicationResources.

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
     
    html:form action="movieSave.do" method="POST" enctype="multipart/form-data">
    	<table>
    		<tr>
    			<td><bean:message key="movie.title"/></td>
    			<td colspan="2"><html:text property="title"/></td>			
    		</tr>
            ...
    Mais je vais suivre ton conseil...

    Merci beaucoup

    Coyote

  4. #4
    Membre confirm�
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    68
    D�tails du profil
    Informations personnelles :
    �ge : 42
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 68
    Par d�faut Feedback
    Le fichier properties est bien dans /WEB-INF/classes :-(

    C'est vraiment � se flinguer...

  5. #5
    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
    Ta classe MovieForm h�rite de ValidatorForm mais tu n'as pas d�fini le plugin Validator dans le struts-config.xml.

    Souhaites-tu utiliser le Validator ou non ?

  6. #6
    Membre confirm�
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    68
    D�tails du profil
    Informations personnelles :
    �ge : 42
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 68
    Par d�faut Oui mais ...
    Salut,

    merci pour ta r�ponse mais je pensais que le plugin Validator ne servait que pour la validation par xml... Si je valide uniquement qu'avec Java dois-je tout de m�me le rajouter dans mon struts-config ?

    Coyote

  7. #7
    Expert confirm�
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Par d�faut
    Non, il ne s'agit pas du fichier struts-config.xml, mais du code de ta classe MovieForm.
    public class MovieForm extends ValidatorForm {
    Si tu n'utilises pas la validation par XML, ton MovieForm ferait mieux d'h�riter d'ActionForm, non ?

  8. #8
    Membre confirm�
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    68
    D�tails du profil
    Informations personnelles :
    �ge : 42
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 68
    Par d�faut Impeccable, �� fonctionne
    Merci beaucoup pour ta r�ponse! Ca fonctionne :-)

    Voici ce que je pensais avoir compris :

    - ActionForm pour un formulaire ne n�cessitant pas de validation
    - ValidatorForm pour un formulaire n�cessitant une validation (java ou xml)

    Derni�re question : pour ou contre la valdation par xml ?

    Merci encore pour tout.

    Coyote

  9. #9
    Expert confirm�
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Par d�faut
    Citation Envoy� par coyote999
    Merci beaucoup pour ta r�ponse! Ca fonctionne :-)
    De rien, mais remercies plut�t c_nvy, c'est lui qui a trouv� l'origine du probl�me , moi, je n'ai fait que t'expliquer ce qu'il voulait dire!

    Citation Envoy� par coyote999
    Voici ce que je pensais avoir compris :

    - ActionForm pour un formulaire ne n�cessitant pas de validation
    - ValidatorForm pour un formulaire n�cessitant une validation (java ou xml)
    Je dois dire que non, ce n'est pas �a : avec ActionForm, il est parfaitement possible de faire la validation en Java avec la m�thode validate(), mais seulement en Java.
    ValidatorForm est � utiliser lorsque tu passes par le plugin Validator, car c'est elle qui d�finit la m�thode validate() en se basant sur les r�gles d�finies dans un fichier XML (validation.xml).

    Pour ta derni�re question, je pense que oui, utiliser le plugin Validator est une tr�s bonne chose, car �a te permet :
    • moins de code : tu n'as plus � d�finir validate() dans chaque ActionForm avec les r�gles sur les champs � valider.
    • r�utilisabilit� :tu �vites la r�p�tition : une r�gle de validation XML peut �tre r�utilis�e dans plusieurs tests.
    • simplicit� de mise � jour : pour changer une r�gle de validation, pas besoin de toucher au code Java, de recompiler, etc. : Tu la modifies dans un fichier XML, et hop !
    • fiabilit� : je pense que les algorithmes utilis�s dans le plugin Validator sont plus s�rs et fiables, et ont subi suffisament de tests.
    Bonne chance.

  10. #10
    Membre confirm�
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    68
    D�tails du profil
    Informations personnelles :
    �ge : 42
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 68
    Par d�faut Parfait
    Merci � tous

    J'aurais appris une chose de plus ce week-end.

    Coyote

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. R�ponses: 2
    Dernier message: 03/08/2011, 08h44
  2. R�ponses: 3
    Dernier message: 14/03/2011, 17h12
  3. R�ponses: 1
    Dernier message: 18/08/2010, 11h36
  4. R�ponses: 1
    Dernier message: 26/01/2010, 14h25
  5. java.lang.IllegalArgumentException: vendorName == null!
    Par spax dans le forum API standards et tierces
    R�ponses: 8
    Dernier message: 16/10/2008, 11h47

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