我一直在研究这个错误几天。在Liferay论坛上还没有回应(尽管我已经尝试了几种不同的方法),但我无法弄清楚错误的真正原因。如果我能找到原因,我可以修复它。错误是:验证错误构建Liferay 7.0 OSGI模块
产生的原因:java.lang.VerifyError的:坏类型的操作数stack_Exception详情:_ 地点:_
组织/ bsfinternational/API /核心/服务/ IMPL/EmailLocalServiceImpl.sendEmail(Ljava /朗/ String; Ljava/lang/String; Ljava/lang/String; Ljava/lang/String; Ljava/lang/String; Ljava/lang/String; Ljava/lang/String;)V @ 930:invokevirtual_
原因:_类型'com/sun/mail/smtp/SMTPMessage'(当前帧,堆栈[1])不能分配给'javax/mail/Message'_
当前帧:_ bci:@ 930_ flags: } _ locals:{'org/bsfinternational/api/core/service/impl/Ema java/lang/String','java/lang/String','java/lang/String','java/lang/String','java/lang/String' ,'java/lang/String',integer,'javax/mail/Session','org/apache/commons/validator/routines/EmailValidator','de/agitos/dkim/DKIMSigner','java/lang/,java/lang/String','java/lang/String','com/sun/mail/smtp/SMTPMessage',整数,'java/lang/String','org/bsfinternational/api/core/Email','[Ljavax/mail/internet/InternetAddress;','java/lang/String','[Ljava/lang/String;','java/util/List','[Ljavax/mail/internet/InternetAddress ;','java/lang/String','java/lang/String','java/lang/String','java/lang/String',integer,'javax/mail/Transport'} _ stack:{' javax/mail/Transport','com/sun/mail/smtp/SMTPMessage','[Ljavax/mail/Address;' } _
所以,我得到SMTPMessage不能分配给消息的问题,但我不知道为什么。我所做的研究似乎指向JVM的差异,但据我所知,所有内容都是在相同的环境下编译的。
实际的代码片段:
// construct the JavaMail message using the DKIM message type from DKIM for JavaMail
SMTPMessage msg = new SMTPDKIMMessage(session, dkimSigner);
如果我尝试在代码中像这样分配SMTPDKIMMessage同类型:
// construct the JavaMail message using the DKIM message type from DKIM for JavaMail
SMTPDKIMMessage msg = new SMTPDKIMMessage(session, dkimSigner);
那么顺从是SMTPDKIMMessage是不能分配给信息。如果我将其更改为消息,那么它会抱怨SMTPDKIMMessage不可分配。看起来像一个圆圈。
因此,这里的第一个问题是:真正的原因是什么?我应该找什么来产生错误?我使用相同的IDE和编译环境编译了DKIMforJavaMail.jar。但有人对这些任务不满意。它是什么?