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 2 Java Discussion :

Struts 2 + Spring - Interceptors - Bean Null


Sujet :

Struts 2 Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 12
    Par défaut Struts 2 + Spring - Interceptors - Bean Null
    Bonjour à tous,

    Petit problème sur lequel je m'acharne depuis plusieurs jours. J'utilise les frameworks Struts 2 + Spring 2 + JPA

    J'ai 1 action pour m'authentifier. J'injecte un bean via Spring et cela fonctionne très bien.

    J'essaye maintenant de créer un interceptor pour dissocier la validation de la saisie et l’accès à la base de donnée.

    Voici un résumé de l'interceptor

    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
     
    public class AuthenticationInterceptor extends ActionSupport implements Interceptor {
     
        private AccountBean accountBean;
     
        @Override
        public String intercept(ActionInvocation invocation) throws Exception {
     
                Log.debug("----- Email : " + accountBean.getEmail());
                Log.debug("----- Password : " + accountBean.getPassword());        
    String returnResult = Action.LOGIN;
     
            try {
     
                if (accountBean.getEmail().isEmpty() || accountBean.getPassword().isEmpty()) {
                    throw new ServiceNoResultException();
     
                } else {
                    returnResult = invocation.invoke();
                }
     
            } catch (NullPointerException ex) {
                ex.printStackTrace();
                addActionError(getText("verification.connexion.errorLogIn"));
     
            } catch (ServiceNoResultException ex) {
                ex.printStackTrace();
                addActionError(getText("verification.connexion.errorLogIn"));
     
            } catch (Exception ex) {
                ex.printStackTrace();
                addActionError(getText("verification.connexion.error"));
     
            } finally {
                return returnResult;
            }
     
        public AccountBean getAccountBean() {
            return accountBean;
        }
     
        public void setAccountBean(AccountBean accountBean) {
            this.accountBean = accountBean;
        }
     
        }

    J'ai mis à jour applicationcontext.xml de la manière suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
        <bean id="accountBean" class ="beans.AccountBean" />
     
        <bean id="authentificationInterceptor" class="interceptors.AuthenticationInterceptor" >        
            <property name="accountBean" ref="accountBean" />
        </bean>

    Et enfin j'inject dans struts.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
     
            <interceptors>
                <interceptor name="authenticationIntercept" class="authentificationInterceptor" />
     
                <interceptor-stack name="newStack">
                    <interceptor-ref name="basicStack"/>
                    <interceptor-ref name="authenticationIntercept"/>
                </interceptor-stack>
     
            </interceptors>
     
     
            <action name="authentificationAccount" class="accountAction" method="authentification" >
                <interceptor-ref name="newStack"/>
                <result name="login"> //jsp/loginCheckFailed.jsp </result>
                <result name="success" type="redirectAction"> displayInformationMember.action </result>
            </action>
    Et malheureusement j'ai en permanence l'erreur suivante

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    INFO: DEBUG:----- AuthenticationInterceptor Email  : null
    INFO: DEBUG:----- AuthenticationInterceptor Password : null
    GRAVE: java.lang.NullPointerException
            at interceptors.AuthenticationInterceptor.intercept(AuthenticationInterceptor.java:32)
    Dans le lien suivant le membre parlait d'un problème de scope. J'ai essayé dans tous les sens mais rien n'y fait.
    http://www.developpez.net/forums/d11...n-interceptor/

    Le plus étrange c'est quand je fais tout le traitement dans l'action (Sans intercepteur) j’accède bien au bean et tout fonctionne.

    Si vous avez une idée je suis preneur .

    Merci d'avance

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 12
    Par défaut
    Je progresse doucement.

    Le bean "accountBean" utilisé par ma classe action est différent du bean "accountBean"utilisé par mon interceptor.

    Donc je ne peux tester les mêmes données. Je change de scope sans succès.

Discussions similaires

  1. Réponses: 15
    Dernier message: 29/01/2014, 18h42
  2. [Integration] [Struts] Injecter un bean session avec Struts et Spring
    Par Barbidure dans le forum Spring
    Réponses: 2
    Dernier message: 23/09/2010, 11h03
  3. Réponses: 5
    Dernier message: 03/07/2007, 14h06
  4. [Struts][JSP] Format avec bean:write
    Par cowa dans le forum Servlets/JSP
    Réponses: 20
    Dernier message: 19/05/2004, 18h16
  5. [Struts][Débutant]Pb de Bean
    Par Ho(c)ine. dans le forum Struts 1
    Réponses: 4
    Dernier message: 07/04/2004, 11h18

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