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] envoi de mail, fichier de configuration


Sujet :

Struts 1 Java

  1. #1
    Membre averti
    Inscrit en
    Août 2002
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 30
    Par défaut [struts] envoi de mail, fichier de configuration
    Bonjour,

    J'ai mon application Struts qui possede une action d'envoi de mail qui tourne bien. Je voudrais mettre la configuration du serveur smtp dans un fichier externe. J'ai commencé la solution par l'utilisation d'un fichier properties et l'utilisation de la classe Properties. Cependant j'ai un probleme pour l'indication du chemin de mon fichier de properties. Pour l'instant je l'ai écrite absolue mais je voudrais que ce soit relatif, de plus je veux que ce soit compatible pour plusieurs serveurs d'application et sans savoir à l'avance ou l'application sera situé.

    J'ai pensé aussi qu'il y a peut etre une meilleur solution en inscrivant l'adresse du serveur mail directement dans le fichier struts-config.xml, comme c'est le cas pour la base de données. Mais je ne trouve pas comment faire.


    Merci d'avance de vos aides

  2. #2
    Membre émérite
    Avatar de yolepro
    Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2002
    Messages
    918
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Mai 2002
    Messages : 918
    Par défaut
    Tu peux très simplement rajouter ton fichier de properties dans un package (de ton choix) et le déclarer dans ton struts-config.xml comme suit :

    <message-resources parameter="com.maboite.monpackage.resources.ApplicationResources"/>

  3. #3
    zl
    zl est déconnecté
    Membre éprouvé
    Inscrit en
    Août 2005
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 75
    Par défaut
    Une autre solution pourrait être de placer ton fichier properties dans le repertoire WEB-INF.

    Zl.

  4. #4
    Membre averti
    Inscrit en
    Août 2002
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 30
    Par défaut
    Il me le trouve pas dans WEB-INF.

    <message-resources parameter="com.maboite.monpack age.resources.Applic ationResources"/>


    Ca je l'ai deja pour mon internationalisation, je sais l'utiliser avec des balises struts mais pas dans mon code java directement. Il faudrait que je sache utiliser un fichier de parametre specifique (pour que je n'utilise pas celui ou j'ai mon internationalisation) et que je sache recuperer la valeur en java dans ma classe d'action.



  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
    Pour accèder à un fichier properties défini comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <message-resources parameter="ressources.application"/>
    il faut coder ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
      String filename="ressources/application.properties" ;
      ClassLoader classLoader = getClass().getClassLoader();
      File file = new File(classLoader.getResource(filename).getFile());
    Adapte-le à ton cas et vois si ça marche mieux.

  6. #6
    Membre averti
    Inscrit en
    Août 2002
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 30
    Par défaut
    J'ai essaye mais c'est pas terrible, j'ai declare mes ressources comme ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     <message-resources parameter="MyResourceBundle"/>
    <message-resources parameter="appli.proprietes"/>
    Mais j'ai un probleme lors de l'affichage des messages lorsque j'ai fini mon envois de mail :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <html:messages id="message" message="true">
                    <b><bean:write name="message"/></b>
    </html:messages>
    j'ai l'erreur : javax.servlet.ServletException: Cannot find bean: "message" in any scope


    Si j'enleve ma declaration de appli.proprietes ca marche bien. Mais je pense qu'il y a bien une interaction avec mon fichier d'internationalisation. Si je met ma declaration de appli.proprietes en deuxieme il me fait cette erreur là... En premier ca marche

  7. #7
    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
    Désolée de t'avoir induit en erreur.
    J'avais complètement zappé le fait que tu avais deux fichiers properties distincts.

    Donc, pour celui d'internalisation que tu as appelé MyResourceBundle, il faut bien le définir dans le tag messages-resources du struts-config.xml comme tu l'as fait.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <message-resources parameter="MyResourceBundle"/>
    Mais par contre, l'autre fichier ne doit pas être déclaré dans le struts-config.xml.
    Tu peux y accèder via le code que je t'ai donné.
    Pour que ça fonctionne, il faut que ton fichier soit sous WEB-INF/classes.

    Donc, soit tu le mets dans un répertoire sous WEB-INF/classes et tu codes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    String filename="tonRepertoire/appli.properties" ;
    ClassLoader classLoader = getClass().getClassLoader();
    File file = new File(classLoader.getResource(filename).getFile());
    Soit tu le mets directement sous WEB-INF/classes (soit au même endroit que ton fichier MyResourceBundle.properties) et il faut simplement coder :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    String filename="appli.properties" ;
    ClassLoader classLoader = getClass().getClassLoader();
    File file = new File(classLoader.getResource(filename).getFile());

  8. #8
    Membre émérite
    Avatar de yolepro
    Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2002
    Messages
    918
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Mai 2002
    Messages : 918
    Par défaut
    Emeline, pourquoi tu n'utilises pas directement ca :

    <bean:message key="label.tonlabel"/>

    comme ca il prend le message qu'il trouve dans ton fichier properties.

  9. #9
    Membre averti
    Inscrit en
    Août 2002
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 30
    Par défaut
    yolepro je vois pas le raport avec mon envoi d'email dans mon action struts? Je ne suis pas dans le html là.


    c_nvy oui c'est ce que j'avais fait au debut, mais il ne me trouve pas mon fichier de proprietes. Il ne le trouve que si je met l'url absolue dans mon filename...

    Mon code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    String filename="appli.proprietes" ;
    ClassLoader classLoader = getClass().getClassLoader();
    File file = new File(classLoader.getResource(filename).getFile());
    FileInputStream in = new FileInputStream(file);
    props.load(in);
    et mon fichier est bien dans WEB-INF/classes

  10. #10
    Membre averti
    Inscrit en
    Août 2002
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 30
    Par défaut
    En fait c'est bon, j'ai pas bien retester. Merci bien

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

Discussions similaires

  1. Problème avec envoi de mail et fichier joint
    Par LFC dans le forum Modules
    Réponses: 5
    Dernier message: 20/05/2006, 20h59
  2. [Configuration] CONFIG pour envoie de mail d'un serveur local
    Par i_shinji dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 14/03/2006, 13h39
  3. Réponses: 5
    Dernier message: 12/12/2005, 08h52
  4. Envoi Mail + fichier joint
    Par mikovitch1 dans le forum C++Builder
    Réponses: 4
    Dernier message: 05/10/2005, 11h02
  5. envoi de mail avec attachement de fichier
    Par GMI3 dans le forum Modules
    Réponses: 2
    Dernier message: 24/09/2003, 11h22

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