J'ai recherché cette erreur pendant quelques jours. Aucune réponse sur le forum de Liferay (encore) et même si j'ai essayé plusieurs approches différentes, je n'arrive pas à comprendre la vraie cause de l'erreur. Si je peux trouver la cause, je pourrais probablement le réparer. L'erreur est:VerifyError building Liferay 7.0 Module OSGI
Causée par: java.lang.VerifyError: Bad Type sur opérande stack_Exception Détails: _ Lieu: _
org/bsfinternational/api/core/Service/impl/EmailLocalServiceImpl.sendEmail (Ljava/lang/String; Ljava/lang/String; Ljava/lang/String; Ljava/lang/String; Ljava/lang/String; Ljava/lang/String; Ljava/lang/String;) V @ 930: invokevirtual
Raison : _ Tapez 'com/sun/mail/smtp/SMTPMessage' (frame actuelle, pile [1]) n'est pas assignable à 'javax/mail/message'
Current frame: _ bci: @ 930_ flags: { } _ locaux: {'org/bsfinternational/api/noyau/service/impl/Ema ilLocalServiceImpl ',' java/lang/String ',' java/lang/String ',' java/lang/String ',' java/lang/String ',' java/lang/String ',' java/lang/String ' , 'java/lang/String', entier, 'javax/mail/session', 'org/apache/commons/validateur/routines/EmailValidator', 'de/agitos/dkim/DKIMSigner', 'java/lang/String' , 'java/lang/String', 'java/lang/String', 'com/dim/mail/smtp/SMTPMessage', entier, 'java/lang/String', 'org/bsfinternational/api/core/model/Email ',' [Ljavax/mail/internet/InternetAdresse; ',' java/lang/String ',' [Ljava/lang/String; ',' java/util/Liste ',' [Ljavax/mail/internet/InternetAddress ; ',' java/lang/String ',' java/lang/String ',' java/lang/String ',' java/lang/String ', un entier,' javax/mail/Transport '} _ stack: {' javax/mail/Transport ',' com/dim/mail/smtp/SMTPMessage ',' [Ljavax/mail/adresse; ' } _
Donc, je comprends qu'il y a un problème avec SMTPMessage n'étant pas assignable à Message mais je ne sais pas pourquoi. La recherche que j'ai faite semble pointer vers les différences de la JVM mais tout a été compilé dans le même environnement, autant que je sache.
L'extrait de code actuel est:
// construct the JavaMail message using the DKIM message type from DKIM for JavaMail
SMTPMessage msg = new SMTPDKIMMessage(session, dkimSigner);
Si j'essayez d'affecter SMTPDKIMMessage au même type dans le code comme ceci:
// construct the JavaMail message using the DKIM message type from DKIM for JavaMail
SMTPDKIMMessage msg = new SMTPDKIMMessage(session, dkimSigner);
Ensuite, la conformité est que SMTPDKIMMessage est incessible à Message. Si je le change en message, il se plaint que SMTPDKIMMessage n'est pas assignable. On dirait un cercle. Donc, la première question ici est: Quelle est la vraie cause? Que dois-je rechercher qui génère l'erreur? J'ai compilé le fichier DKIMforJavaMail.jar en utilisant le même environnement IDE et de compilation. Mais quelqu'un est mécontent de ces affectations. Qu'Est-ce que c'est?