标签:lang 依赖 java 1.1 violated jar LinkageError class activation
项目场景:
SA 的BOSS系统有后台任务,系统使用SpringTask + Javamail实现将客户的下月账单发送到客户邮箱中,升级系统后发现后台有报错
java.lang.LinkageError: loader constraints violated when linking
原因分析:
LinkageError异常准确的说他是一个错误, 因为他是 Error类的子类,Java API对Error的描述,只有LinkageError的解释:
Subclasses of LinkageError indicate that a class has some dependency on another class; however, the latter class has incompatibly changed after the compilation of the former class.
大概意思为,ERROR 的子类LinkageError的异常提示发生一个类对另一个类具有某种依赖关系, 但是依赖的类在编译后发生了不兼容的改变,例如编译时候A类依赖B类,到运行时,A类得到的B类(既某个类加载器加载的B类)却发现B类已经变成了不兼容的类,无法满足依赖关系
通过异常日志发现问题 出现在javamail的MimeMessageHelper#addAttachment方法中,查看代码发现是可能是 javax.activation.DataHandler引起, 此类位于activation-1.1.jar 包中
最后考虑到会不会是JBOSS环境中第三方包影响,因此核实第三方包,发现BOSS中使用的第3方包activation.jar和activation-1.1.jar冲突。两个包冲突引起依赖问题
解决方案:
activation-1.1.jar是解决一个业务需求时增加,核实代码此业务需求activation.jar完全可用,删除activation-1.1.jar后问题解决
标签:lang,依赖,java,1.1,violated,jar,LinkageError,class,activation 来源: https://blog.csdn.net/Beijing_L/article/details/121935080
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。