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

avec Java Discussion :

Class extends


Sujet :

avec Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 57
    Points : 42
    Points
    42
    Par défaut Class extends
    Bonjour,

    je rencontre actuellement un problème avec l'utilisation des classes extends.
    J'ai une classe action qui extends d'autres classes action.
    Je possède deux Actions qui extends des mêmes autres classes.
    Lors du passage dans la classe Action1, les classes du extends sont bien exécutées. Cependant, lors du passage dans la classe Action2, les classes du extends ne sont pas exécuté.
    Je ne parviens pas à comprendre pourquoi?

    Merci

  2. #2
    Membre du Club
    Profil pro
    Architecte logiciel
    Inscrit en
    Janvier 2006
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2006
    Messages : 28
    Points : 48
    Points
    48
    Par défaut
    ton exposé du probleme ne m'est pas comprehensible.
    est ce que tu peux reformuler eventuellement avec un petit exemple de ton code ?

    on execute pas une classe : on peu invoquer une methode d'un objet issue de la classe, ou invoquer une methode statique de classe.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 57
    Points : 42
    Points
    42
    Par défaut
    Citation Envoyé par fallo Voir le message
    ton exposé du probleme ne m'est pas comprehensible.
    est ce que tu peux reformuler eventuellement avec un petit exemple de ton code ?

    on execute pas une classe : on peu invoquer une methode d'un objet issue de la classe, ou invoquer une methode statique de classe.
    Je possède donc deux actions (CryptageAction et OffreMobileAction)

    CryptageAction extends AbstractOffreMobileBaseAction
    AbstractOffreMobileBaseAction extends AbstractMefBaseAction
    AbstractMefBaseAction extends AbstractMefAction
    AbstractMefAction extends Action

    OffreMobileAction extends AbstractOffreMobileBaseAction
    AbstractOffreMobileBaseAction extends AbstractMefBaseAction
    AbstractMefBaseAction extends AbstractMefAction
    AbstractMefAction extends Action

    Lorsque j'appelle OffreMobileAction, une méthode de AbstractMefBaseAction est exécutée, alors que quand j'appelle CryptageAction celle-ci n'est pas exécutée.

    Dans les deux classes OffreMobileAction et CryptageAction seul la méthode perfromAction est implémentée.

    Est-ce plus compréhensible?

  4. #4
    Membre expérimenté Avatar de Ivelios
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2008
    Messages
    1 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 031
    Points : 1 540
    Points
    1 540
    Par défaut
    Peux tu nous montrer le code de :
    CryptageAction,OffreMobileAction ,AbstractMefBaseAction
    Et la manière dont tu les a instancié dans ton programme.

    Merci
    Il était une fois [...] Et ils vécurent heureux et eurent beaucoup d'enfants!

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 57
    Points : 42
    Points
    42
    Par défaut
    Citation Envoyé par Ivelios Voir le message
    Peux tu nous montrer le code de :
    CryptageAction,OffreMobileAction ,AbstractMefBaseAction
    Et la manière dont tu les a instancié dans ton programme.

    Merci
    OffreMobileAction :

    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
    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
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    /**
     * 
     */
    package com.bnpparibas.offremobile.presentation.struts.action;
     
    import java.io.ByteArrayInputStream;
    import java.io.File;
    import java.io.FileReader;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.UnsupportedEncodingException;
    import java.net.URL;
    import java.util.HashMap;
     
    import javax.naming.InitialContext;
    import javax.naming.NamingException;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
     
    import org.apache.log4j.Logger;
    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionForward;
    import org.apache.struts.action.ActionMapping;
     
    import com.bnpparibas.mef.presentation.core.xml.XmlTraitement;
    import com.bnpparibas.offremobile.presentation.base.action.AbstractOffreMobileBaseAction;
    import com.bnpparibas.offremobile.presentation.base.exception.OffreMobileException;
    import com.bnpparibas.offremobile.presentation.base.session.ContexteUtilisateur;
    import com.bnpparibas.offremobile.presentation.base.session.SessionOffreMobileUtilisateur;
    import com.bnpparibas.offremobile.presentation.base.utils.RbUtils;
    import com.bnpparibas.offremobile.presentation.documentum.utils.Configuration;
    import com.bnpparibas.offremobile.presentation.documentum.utils.DocumentumConfigUtils;
    import com.bnpparibas.offremobile.presentation.documentum.utils.NomFiche;
    import com.bnpparibas.offremobile.presentation.documentum.utils.NomZone;
    import com.bnpparibas.offremobile.presentation.documentum.utils.XstreamUtils;
    import com.bnpparibas.offremobile.presentation.documentum.utils.ZonePubliableDematPro;
    import com.bnpparibas.offremobile.presentation.resources.OffreMobileConstantes;
     
    /**
     * @author 820883
     *
     */
    public class OffreMobileAction extends AbstractOffreMobileBaseAction{
     
    	private static final Logger log = Logger.getLogger(OffreMobileAction.class);	
     
    	protected ActionForward performAction(ActionMapping mapping,
    			ActionForm form, HttpServletRequest request,
    			HttpServletResponse response)throws Exception{
     
    		if(log.isDebugEnabled()){
    			log.debug("Entrée OffreMobileAction");
    		}
    		boolean popup=false;
    		SessionOffreMobileUtilisateur sessionOffreMobileUtilisateur = (SessionOffreMobileUtilisateur)request.getSession().getAttribute(SessionOffreMobileUtilisateur.OFFREMOBILE_CLE_SESSION_OBJECT);
    		ContexteUtilisateur contexteUtilisateur = sessionOffreMobileUtilisateur.getContexteUtilisateur();
     
    		request.getSession().setAttribute("contexteUtilisateur", contexteUtilisateur);
    		Configuration config = new Configuration();
    			config = chargerConfigDematPro();
     
    			sessionOffreMobileUtilisateur.setConfig(config);
    		request.getSession().setAttribute("sessionOffreMobileUtilisateur", sessionOffreMobileUtilisateur);
    		request.getSession().setAttribute("popup", popup);
     
    		log.debug("Terminal : "+request.getParameter("terminal"));
    		log.debug("Forfait : "+request.getParameter("forfait"));
    		log.debug("Durée : "+request.getParameter("duree"));
     
    		if(log.isDebugEnabled()){
    			log.debug("Sortie OffreMobileAction");
    		}
    		return getSuccessForward(mapping);
    	}
     
    	/**
             * methode permetant de charger la config Activation, desactivation SE
             * 
             * @return boolean
             * @throws DematProException
             * @throws Exception
             */
    	public Configuration chargerConfigDematPro() throws OffreMobileException {
     
    		// URL du fichier properties externalisé rattaché
    		URL URL_FICHIER_PROPERTIES_EXTERNE = null;
     
    		//Instanciation de l'objet de retour
    		Configuration configuration = new Configuration();
     
    		try {
    			InitialContext context = new InitialContext();
    			URL_FICHIER_PROPERTIES_EXTERNE = (URL) context
    					.lookup("url/offmobpres_configproperties");
    		} catch (NamingException e) {
    			System.err.println("Echec du chargement de l’url provider :"
    					+ e.getMessage());
    		}
     
    		String pathXmlConfig = null;
    		log.debug("NOM OBJECT NAME : " + URL_FICHIER_PROPERTIES_EXTERNE + "_"
    				+ OffreMobileConstantes.CLE_FILE_CONFIG_DOCUMENTUM);
    		try {
    			pathXmlConfig = DocumentumConfigUtils.getDocumentumData(RbUtils
    					.getStringProperties(URL_FICHIER_PROPERTIES_EXTERNE,
    							OffreMobileConstantes.CLE_FILE_CONFIG_DOCUMENTUM));
    		} catch (IOException e) {
    			log.error(e.getCause());
    		}
     
    		if (log.isDebugEnabled()) {
    			log.debug(" chemin du fichier de config [" + pathXmlConfig + "]");
    		}
     
    		String configXML = "";
    		configXML = this.servlet.getServletContext().getRealPath("portail_ref") + "/" +pathXmlConfig;
     
    		if (log.isDebugEnabled()) {
    			log.debug(" path complet [" + configXML + "]");
    		}
     
    		File myFile = new File(configXML);
    		boolean filePresent = myFile.exists();
     
    		if (!filePresent) {
    			if (log.isInfoEnabled()) {
    				log.info("Le fichier de configuration XML Documentum n'est pas present dans "
    								+ configXML);
    			}
    		} else {
    			if (log.isInfoEnabled())
    				log.info("Le fichier de configuration XML Documentum a été trouvé");
     
    			String xmlTemp = "";
     
    			try {
    				// Lecture du fichier de configuration
    				FileReader xmlEntree = new FileReader(configXML);
    				xmlTemp = XmlTraitement.transforme(xmlEntree,OffreMobileConstantes.PATH_XSL_ETAPE1);
    			} catch (Exception e) {
    				log.error(e.getCause());
    			}
     
    			InputStream is = null;
     
    			if (!"".equals(xmlTemp)) {
    				try {
    					is = new ByteArrayInputStream(xmlTemp.getBytes("UTF-8"));
    				} catch (UnsupportedEncodingException e) {
    					log.error(e.getCause());
    				}
    			}
     
    			if (is != null) {
    				HashMap<String, Class<?>> alias = new HashMap<String, Class<?>>();
    					alias.put("configuration", Configuration.class);
    						alias.put("zonepubliabledematpro", ZonePubliableDematPro.class);
    							alias.put("nomzonea", String.class);
    							alias.put("valeur", String.class);
    							alias.put("nomzone", NomZone.class);
    								alias.put("nomzonea", String.class);
    								alias.put("valeur", String.class);
    								alias.put("nomfiche", NomFiche.class);
    									alias.put("nomzonea", String.class);
    									alias.put("valeur", String.class);
     
    				configuration = (Configuration) XstreamUtils.getObjectFromXML(is, alias);
    			}
    		}
    		return configuration;
    	}
    }

    CryptageAction

    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
    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
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    package com.bnpparibas.offremobile.presentation.struts.action;
     
    import java.io.BufferedWriter;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.security.InvalidKeyException;
    import java.security.Key;
    import java.security.KeyPair;
    import java.security.KeyPairGenerator;
    import java.security.MessageDigest;
    import java.security.NoSuchAlgorithmException;
    import java.security.NoSuchProviderException;
    import java.security.Security;
    import java.util.Date;
     
    import javax.crypto.BadPaddingException;
    import javax.crypto.Cipher;
    import javax.crypto.IllegalBlockSizeException;
    import javax.crypto.NoSuchPaddingException;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
     
    import org.apache.log4j.Logger;
    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionForward;
    import org.apache.struts.action.ActionMapping;
     
    import org.bouncycastle.jce.provider.BouncyCastleProvider;
     
    import com.bnpparibas.offremobile.presentation.base.action.AbstractOffreMobileBaseAction;
    import com.bnpparibas.offremobile.presentation.base.exception.OffreMobileException;
    import com.bnpparibas.offremobile.presentation.base.session.SessionOffreMobileUtilisateur;
    import com.thoughtworks.xstream.core.util.Base64Encoder;
     
    public class CryptageAction extends AbstractOffreMobileBaseAction{
     
    	private static final Logger log = Logger.getLogger(CryptageAction.class);
     
    	protected ActionForward doBefore(ActionMapping mapping, ActionForm form,
    			HttpServletRequest request, HttpServletResponse response)
    			throws Exception {
     
    		ActionForward actionforward = super.doBefore(mapping, form, request,
    				response);
     
    		return actionforward;
    	}
     
    	protected ActionForward performAction(ActionMapping mapping,
    			ActionForm form, HttpServletRequest request,
    			HttpServletResponse response) throws Exception  {
     
    		if(log.isDebugEnabled()){
    			log.debug("[Enter CryptageAction]");
    	    }
     
    		SessionOffreMobileUtilisateur sessionOffreMobileUtilisateur = (SessionOffreMobileUtilisateur)request.getSession().getAttribute(SessionOffreMobileUtilisateur.OFFREMOBILE_CLE_SESSION_OBJECT);
    		Date date = sessionOffreMobileUtilisateur.getDateServeur().getDate();
     
    		Security.addProvider(new BouncyCastleProvider());
    		String chaineAcrypter = "BonjourJeSuisCrypté";
     
    		long timstamp = date.getTime();
    		StringBuffer sb = new StringBuffer(255);
    		sb.append(chaineAcrypter).append(timstamp);
     
    		StringBuffer sbdf = new StringBuffer(255);
    		sbdf = shaHashing(sb.toString());
     
    		request.getSession().setAttribute("messageHashé", sbdf.toString());
     
    		byte[] input = sbdf.toString().getBytes();
    		Cipher cipher = null;
    		KeyPairGenerator generator = null;
    		Key pubKey = null;
    		Key privKey = null;
    		byte[] cipherText = null;
    		byte[] plainText = null;
    		String url64 = null;
     
    		try {
    			cipher = Cipher.getInstance("RSA/None/OAEPWithSHA1AndMGF1Padding", "BC");
    			generator = KeyPairGenerator.getInstance("RSA", "BC");
     
    			generator.initialize(2048);
    			KeyPair pair = generator.generateKeyPair();
     
    			pubKey = pair.getPublic();
    			privKey = pair.getPrivate();
    			//Cryptage
    			cipher.init(Cipher.ENCRYPT_MODE, privKey);
    			cipherText = cipher.doFinal(input);
    			System.out.println("MESSAGE CRYPTE : "+new String(cipherText));
     
    			//Decryptage
    			cipher.init(Cipher.DECRYPT_MODE, pubKey);
    			plainText = cipher.doFinal(cipherText);
    			System.out.println("MESSAGE DECYPTE : "+ new String(plainText));
     
    			Base64Encoder encoder = new Base64Encoder();
    			url64 = encoder.encode(cipherText);
     
    		} catch (NoSuchAlgorithmException e) {
    			log.error(e);
    			throw new OffreMobileException(e.getMessage(), e.getCause()); 
    		} catch (NoSuchProviderException e) {
    			log.error(e);
    			throw new OffreMobileException(e.getMessage(), e.getCause()); 
    		} catch (NoSuchPaddingException e) {
    			log.error(e);
    			throw new OffreMobileException(e.getMessage(), e.getCause()); 
    		} catch (InvalidKeyException e) {
    			log.error(e);
    			throw new OffreMobileException(e.getMessage(), e.getCause()); 
    		} catch (IllegalBlockSizeException e) {
    			log.error(e);
    			throw new OffreMobileException(e.getMessage(), e.getCause()); 
    		} catch (BadPaddingException e) {
    			log.error(e);
    			throw new OffreMobileException(e.getMessage(), e.getCause()); 
    		}
     
     
     		request.getSession().setAttribute("clePub", pubKey.toString());
     		request.getSession().setAttribute("messageacrypter2", new String(sb));
     		request.getSession().setAttribute("messageCrypte", new String(cipherText));
     		request.getSession().setAttribute("messageDecrypte", new String (plainText));
     		request.getSession().setAttribute("base64Url", url64);
    		request.getSession().setAttribute("popup", true);
     
    		String adresseDuFichier = "c:/cryptage.txt";
     		try{
     			FileWriter fw = new FileWriter(adresseDuFichier, true);
     			BufferedWriter output = new BufferedWriter(fw);
     			output.write("Cle publique : "+pubKey.toString()+"\r\n"+"Message a crypter : "+new String(sb)+"\r\n"+"Message crypté : "+new String(cipherText)+"\r\n"+"Message decrypté : "+new String (plainText)+"\r\n"+"Message encodé en base64 : "+url64);
     			output.flush();
     			output.close();
     			System.out.println("fichier créé");
     		}catch(IOException ioe){
    			System.out.print("Erreur : ");
    			ioe.printStackTrace();
    		}
     
    		if(log.isDebugEnabled()){
    			log.debug("[Exit CryptageAction]");
    	    }
    		return getSuccessForward(mapping);
    	}
     
     
    	public StringBuffer shaHashing(String chaine){
    		StringBuffer sb = new StringBuffer(255);
    		try {
    			MessageDigest md = MessageDigest.getInstance("SHA-256");
    			md.update(chaine.getBytes());
    			byte byteData[] = md.digest();
    			for(int i=0;i<byteData.length;i++){
    				sb.append(Integer.toString((byteData[i]&0xff)+0x100, 16).substring(1));
    			}
    		} catch (NoSuchAlgorithmException e) {
    			log.error(e);
    		}
    		return sb;
    	}
    }
    AbstractMefBaseAction

    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
    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
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    /*
     * Created on 12 févr. 2008
     *
     * Confidential Property of BNPPARIBAS.
     * All Rights reserved.
     * May not be used without prior written agreement
     * signed by a BNPPARIBAS corporate officer.
     *
     *********************************************************************
     *
     * Project 		MutMefPresentationCore<br>
     * Type 		AbstractMefBaseAction<br>
     * FileName 		AbstractMefBaseAction.java<br>
     * @author		Name of the author<br>
     * @specs
     * @tests
     * @desc
     *********************************************************************
     * 
     * 
     * 
     *********************************************************************
     */
     
    package com.bnpparibas.mef.presentation.core.action;
     
    import java.lang.reflect.InvocationTargetException;
    import java.util.Enumeration;
     
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
     
    import org.apache.commons.beanutils.BeanUtils;
    import org.apache.log4j.Logger;
    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionForward;
    import org.apache.struts.action.ActionMapping;
     
    import com.bnpparibas.mef.presentation.core.form.GeneriquePortailActionForm;
    import com.bnpparibas.mef.presentation.core.vo.portail.PortailInfos;
     
    /**
     * @author 424114
     *
     * TODO Pour changer le modèle de ce commentaire de type généré, allez à :
     * Fenêtre - Préférences - Java - Style de code - Modèles de code
     */
    public abstract class AbstractMefBaseAction extends AbstractMefAction {
     
    	/**
             * Logger
             */
    	private static Logger log = Logger.getLogger(AbstractMefBaseAction.class);
     
     
    	/* (non-Javadoc)
    	 * @see org.apache.struts.action.Action#execute(org.apache.struts.action.ActionMapping, org.apache.struts.action.ActionForm, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
    	 */
    	public ActionForward execute(ActionMapping mapping, ActionForm form,
    			HttpServletRequest request, HttpServletResponse response)
    			throws Exception {
     
     
    		ActionForward actionForward = null;
    		ActionForward actionForwardTemp = null;
    		try {
    			actionForwardTemp=doBefore(mapping, form, request, response);
    			if(actionForwardTemp!=null){
    				actionForward=actionForwardTemp;
    			}
    			actionForwardTemp = performAction(mapping, form, request, response);
    			if(actionForwardTemp!=null){
    				actionForward=actionForwardTemp;
    			}
    			actionForwardTemp=doAfter(mapping, form, request, response);
    			if(actionForwardTemp!=null){
    				actionForward=actionForwardTemp;
    			}
    		}catch(Exception e){
    			actionForward = processException(mapping, request, e);
    		}
     
    		return actionForward;
    	}
     
     
     
     
    	protected ActionForward doBefore(ActionMapping mapping, ActionForm form,
    			HttpServletRequest request, HttpServletResponse resonse)
    			throws Exception {
    //		Affichage Info Session + header
    		if(log.isDebugEnabled()){
    			log.debug("isRequestedSessionIdFromCookie()="+request.isRequestedSessionIdFromCookie());
    			log.debug("request.getSession().getId()="+request.getSession().getId());
    			log.debug("request.getSession().isNew()="+request.getSession().isNew());
    			Enumeration enumeration =request.getHeaderNames();
    			while(enumeration.hasMoreElements()){
    				String header = (String) enumeration.nextElement();
    				log.debug("header-->"+header+"="+request.getHeader(header));
    			}
    		}
     
    		//Formulaire de base reçu
    		GeneriquePortailActionForm baseForm = (GeneriquePortailActionForm)form;
     
    	    //Alimentation du bean PortailInfo avec les données du Portail
    	    populatePortailBean(request, baseForm);
    	    return null;
    	}
    	/**
             * Méthode qui doit implémenter la partie fonctionnelle de l'action
             * @param mapping
             * @param form
             * @param request
             * @param response
             * @return
             * @throws Exception
             */
    	protected abstract ActionForward performAction(
    			ActionMapping mapping,
    			ActionForm form,
    			HttpServletRequest request,
    			HttpServletResponse response)
    			throws Exception;	
     
    	/**
             * Méthode utilitaire qui permet de récupérer le Forward SUCCESS
             * @param mapping
             * @return
             */
    	protected ActionForward getSuccessForward(ActionMapping mapping){
    		return mapping.findForward("success");
    	}
     
     
    	/**
             * Cette methode permet d'allimenter le bean portailInfo avec les données reçues du portail
             * @param request
             * @param form
             */
    	private void populatePortailBean(HttpServletRequest request, GeneriquePortailActionForm form){
     
    	    PortailInfos portailInfos = new PortailInfos();
     
    	    try {
    	    	//Suite à l'intégration portail
    	    	// Modifier le formulaire avec les nouveaux noms de param
    	    	// setter ppte par ppte dans portailInfos (qui ne change pas)
    			BeanUtils.copyProperties(portailInfos, form);
    		    portailInfos.setIdSession(request.getSession().getId());
    		    System.out.println("JE SUIS DANS LE ABSTRACT ACTION");
    		    request.setAttribute("portailInfos", portailInfos);
     
    		} catch (IllegalAccessException e) {
    			if(log.isDebugEnabled()){
    				e.printStackTrace();
    			}
     
    		} catch (InvocationTargetException e) {
    			if(log.isDebugEnabled()){
    				e.printStackTrace();
    			}
    		}
    	}
     
    }

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 57
    Points : 42
    Points
    42
    Par défaut
    Problème résolu,

    j'ai modifié la classe AbstractOffreMobileBaseAction.
    j'ai rajouté :

    ActionForward actionForward = super.doBefore(mapping, form, request, response);

    dans le doBefore et fait un return actionForward.

  7. #7
    Membre expérimenté Avatar de Ivelios
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2008
    Messages
    1 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 031
    Points : 1 540
    Points
    1 540
    Par défaut
    Lorsque j'appelle OffreMobileAction, une méthode de AbstractMefBaseAction est exécutée, alors que quand j'appelle CryptageAction celle-ci n'est pas exécutée.
    Dans le code fournie ici, il n'y a aucune raison qu'une méthode de AbstractMefBaseAction soit exécuté.
    Tu n'avais pas prévenu qu'il s'agissait de strutsAction.
    Il nous faut en plus la classe AbstractMefBaseAction, le fichier de config des action Struts.
    La méthode en défaut est bien performAction ?
    Il était une fois [...] Et ils vécurent heureux et eurent beaucoup d'enfants!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. actionscript : class extends xml
    Par pierre-y dans le forum ActionScript 1 & ActionScript 2
    Réponses: 3
    Dernier message: 18/02/2008, 11h50
  2. [Swing]Affichage classe extends JPanel
    Par Quentin D dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 03/08/2007, 12h58
  3. pb avec une classe extends JPanel
    Par thecancre dans le forum AWT/Swing
    Réponses: 9
    Dernier message: 11/05/2006, 18h45
  4. class , extends....
    Par maminova dans le forum Langage
    Réponses: 10
    Dernier message: 17/10/2005, 13h51
  5. [AS2] durée de vie d'une classe (extends movieclip)
    Par ooyeah dans le forum ActionScript 1 & ActionScript 2
    Réponses: 4
    Dernier message: 23/07/2005, 13h33

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