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

API standards et tierces Java Discussion :

[JACOB] Souci Envoi de mail en JAVA


Sujet :

API standards et tierces Java

  1. #1
    Membre à l'essai
    Femme Profil pro
    Etudiante
    Inscrit en
    Mai 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Etudiante

    Informations forums :
    Inscription : Mai 2014
    Messages : 10
    Points : 11
    Points
    11
    Par défaut [JACOB] Souci Envoi de mail en JAVA
    Bonjour,

    J'utilise la bibliothèque Jacob pour mon application JAVA. Elle sert à envoyer un message selon l'utilisateur via Outlook (obligatoire).
    Si je lance l'application via mon eclipse, tout se passe bien.
    Si je lance l'application via le .JAR exécutable, Outlook ne se lance même pas.

    J'ai pourtant bien regardé, et j'ai bien tout mis dans le BuildPath, ainsi que mis la library jacob à exporter dans les configurations.
    Bref, je fais choux-blanc.

    Auriez vous des idées ?
    Merci d'avance

  2. #2
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 073
    Points : 7 978
    Points
    7 978
    Par défaut
    Citation Envoyé par lazylemon Voir le message
    J'ai pourtant bien regardé, et j'ai bien tout mis dans le BuildPath, ainsi que mis la library jacob à exporter dans les configurations.
    Bref, je fais choux-blanc.
    Auriez vous des idées ?
    Regarder dans la consoles le ou les eventuels message d'erreurs/stacktrace qui devrait logiquement apparaitre si ça fonctionnait sous ton IDE avant l'export. (Tu as peut être oublier d'inclure quelque chose lors de l'export).
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre à l'essai

    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Janvier 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2013
    Messages : 5
    Points : 13
    Points
    13
    Billets dans le blog
    1
    Par défaut Jacob - Erreur java.lang.ExceptionInInitializerError
    Je travaille depuis plusieurs mois sur un projet mais je suis confronté à un problème d'envoi de mails.

    Il faut savoir que mon entreprise m'impose de prendre la main sur outlook pour envoyer les mails donc des classes types javamail ne fonctionne pas.
    Après plusieurs heures à consulter des forums, j'ai trouvé Jacob.
    Je l'ai pris en mis, corrigé quelques erreurs liées au Classpath et library mais je suis depuis plusieurs jours confronté à l'erreur java.lang.ExceptionInInitializerError

    Quelqu'un a-t-il une idée?

    Voici mon code:

    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
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.IOException;
     
    import com.jacob.activeX.ActiveXComponent;
    import com.jacob.com.Dispatch;
     
    public class SendMail {
                    public static void main(String[] args) {  
     
                        ActiveXComponent oOutlook = new ActiveXComponent("Outlook.Application");  
                        Dispatch.call(oOutlook ,"GetNamespace","MAPI").toDispatch();
                        Dispatch email = Dispatch.invoke(oOutlook.getObject(),"CreateItem", Dispatch.Get, new Object[] { "0" }, new int[0]).toDispatch();  
                        Dispatch.put(email, "To", "xxx@xxx.com");  
                        Dispatch.put(email, "Subject", "xxx");  
                        Dispatch.put(email, "Body", "xxx");  
                        Dispatch.put(email, "Body", getCuerpoEmail("C:\\log.txt"));
                        Dispatch.put(email, "ReadReceiptRequested", "false"); 
                        try {  
                            Dispatch.call(email, "Send");  
                        } catch (com.jacob.com.ComFailException e) {  
                            e.printStackTrace();  
                        }  
               }
                    public static String getCuerpoEmail(String fileName)
                   {
                       String message = null;
                       FileInputStream file;
                       try {
                           file = new FileInputStream(fileName);
                           byte[] b = new byte[file.available()];
                           file.read(b);
                           file.close();
                           message = new String(b);
                       } catch (FileNotFoundException e) {
                           e.printStackTrace();
                       } catch (IOException e) {
                           e.printStackTrace();
                       }
                       return message;
                   }
           }

  4. #4
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 073
    Points : 7 978
    Points
    7 978
    Par défaut
    Tu n'as pas un chemin vers une DLL a rajouter dans 'java.library.path' par hasard ?
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre à l'essai

    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Janvier 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2013
    Messages : 5
    Points : 13
    Points
    13
    Billets dans le blog
    1
    Par défaut
    Merci pour ta réponse rapide :-):-)

    J'avais déjà ajouté dans ma User Library le dll et le Jar.
    Faut-il faire quelque chose d'autre?

  6. #6
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 073
    Points : 7 978
    Points
    7 978
    Par défaut
    Au vu du message d'erreur en fait ca ne vient surement pas de ce que je dis. Par contre la stacktrace complète ca serait utile de la fournir... Parce que chez moi ton code il marche sans erreur (je vois bien outlook qui s'ouvre etc... bien que ne l'ayant pas configuré).
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Membre à l'essai

    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Janvier 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2013
    Messages : 5
    Points : 13
    Points
    13
    Billets dans le blog
    1
    Par défaut
    Voici les messages sur la console :

    Exception in thread "main" java.lang.ExceptionInInitializerError
    at SendMail.main(SendMail.java:11)
    Caused by: java.lang.NullPointerException
    at java.util.ResourceBundle.getBundle(Unknown Source)
    at com.jacob.com.LibraryLoader.loadJacobLibrary(LibraryLoader.java:130)
    at com.jacob.com.JacobObject.<clinit>(JacobObject.java:110)
    ... 1 more

    Ceci est le message lié au dll.

    Archive for required library: 'jacob-1.18-x64.dll' in project 'Suivi_exigence' cannot be read or is not a valid ZIP file

  8. #8
    Membre à l'essai

    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Janvier 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2013
    Messages : 5
    Points : 13
    Points
    13
    Billets dans le blog
    1
    Par défaut
    Mon problème est résolu...

    Merci à toi wax78

    Pour ceux qui auraient le même problème, pour le résoudre, il faut correctement configurer le ClassPath et le DLL.

    Pour ce faire, j'ai créé une librairie (add library/User Library que j'ai nommé JACOB Library). Lors de la création, ne cochez pas "System library"!!!! mon problème venait de là.
    J'ai ensuite ajouté mon jar en faisant "Add JARs..."

    Je reviens dans JACOB Library, je retrouve mon jacob.jar. Je décompose mon fichier jar (petit triangle à gauche du nom) et dans Native library location, j'ai ajouté l'endroit où se trouvait mon dll (jacob-1.18-x64.dll)

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    293
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 293
    Points : 96
    Points
    96
    Par défaut
    Bonjour,

    Je ne vois trop bien comment ajouter une librairie personnelle et via quelle API ?

    J'ai un problème similaire : à partir d'Eclipse j'ai ajouté le jacob.jar comme external jar.
    Sous eclipse mon programme crée bien le mail Outlook.
    Je génère un archive jar pour utiliser mon programme n'importe où.
    A partir d'une ligne de commande, je lance avec java.exe le programme jar et il crée bien le mail.
    Cependant, lorsque j'insère la commande dans un autre script (dans une AppV de Windows) et que je rajoute la librairie à la commande tel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    java.exe -Djava.library.path=%PackageDir%\\AppTest\\jacob-1.19-x64.dll -jar %PackageDir%\\AppTest\\Test.jar
    ou encore
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    java.exe -jar %PackageDir%\\AppTest\\Test.jar
    il donne l'erreur qu'il ne peut pas créer l'objet Outlook.
    Par contre, en ligne de commande (cmd) et parce que j'ai ajoute la librairie dans le répertoire de java (PATH), je n'ai pas de problème sans ajouter la libraire en ligne de commande tel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    cmd : java.exe -jar %PackageDir%\\AppTest\\Test.jar
    Le but est quand même de ne pas ajouter la librairie dans le répertoire d'installation du JRE et de l'ajoute en ligne de commande avec -Djava.library.path

    Merci pour vos éclaircissement

    cpf

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    293
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 293
    Points : 96
    Points
    96
    Par défaut
    le problème ne venait de la manière de la java mais des restrictions liés aux APPV de Windows.
    Pour la librairie "Jacob.jar", il suffit de la placer dans le même répertoire que le jar à lancer et puis la commande normale :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    java.exe -jar %PackageDir%\\AppTest\\Test.jar
    ça fonctionne très bien !

    Merci

    cpf

Discussions similaires

  1. Envoi de mail avec java ou batch
    Par kavdo34 dans le forum Débuter avec Java
    Réponses: 9
    Dernier message: 01/04/2010, 15h07
  2. Ouverture de Outlook et Envoie de mail en Java
    Par Maille dans le forum Débuter avec Java
    Réponses: 5
    Dernier message: 18/03/2009, 16h25
  3. [JavaMail] envoi de mails en java
    Par franfr57 dans le forum API standards et tierces
    Réponses: 4
    Dernier message: 11/01/2007, 19h33
  4. Envoi de mail en java
    Par jojo57 dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 01/01/2007, 18h26
  5. Envoi de mail en java
    Par xtil dans le forum API standards et tierces
    Réponses: 3
    Dernier message: 08/09/2005, 00h39

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