2017-02-03 2 views
0

J'utilise WSO2 ESB pour vérifier les courriels d'une boîte aux lettres IMAP. Certains e-mails sont signés et cryptés avec un certificat 256. J'utilise BouncyCastle pour déchiffrer le message. J'ai un problème de compatibilité sur mail.jar (javax.mail).WSO2 - Utilisation de IMAPMessage incompatible avec javax.mail?

1/Je reçois l'email:

if (message instanceof IMAPMessage) { 

2/Je casting le message à la Colombie-Britannique:

final SMIMEEnveloped m = new SMIMEEnveloped((MimeMessage) message); 

3/Je reçois cette erreur sur cette distribution:

java.lang.IncompatibleClassChangeError: Class com.sun.mail.imap.IMAPMessage does not implement the requested interface javax.mail.Part 
    at org.bouncycastle.mail.smime.SMIMEEnveloped.getInputStream(Unknown Source) 
    at org.bouncycastle.mail.smime.SMIMEEnveloped.<init>(Unknown Source) 

J'utilise le bcprov-jdk15on-1.52.jar qui est inclus dans WSO2 ESB. J'utilise mail-1.4.jar pour les classes javax.mail et com.sun.mail.

Je pense à un conflit de version de mail.jar mais je ne peux pas savoir d'où vient l'autre classe.

Une aide sera appréciée!

Répondre

0

J'ai finalement réussi à récupérer des emails d'IMAP. Vous devez remplacer certaines bibliothèques de WSO2: bcmail-jdk15on-1.52.jar et jsch-0.1.51.wso2v1.jar pour que le code de décodage SMIME fonctionne. Copiez ces bibliothèques dans wso2esb-5.0.0/repository/components/lib.

Espérons que cela aide quelqu'un d'autre.