当前位置: 代码迷 >> 综合 >> 利用是ssm框架以及容器maven创建项目时遇到javax.mail.....导入不成功
  详细解决方案

利用是ssm框架以及容器maven创建项目时遇到javax.mail.....导入不成功

热度:85   发布时间:2023-11-22 11:39:45.0

查找原因,发现如下问题:

 

1、Maven依赖中使用的 javeee.jar 版本较高,里面包含了 mail相关的接口,和 mail.jar 相冲突;

2、javaee.jar 中包含了 mail相关接口的 实现类;

3、MyEclipse自带的javaee.jar 版本和 MyEclipse本身的版本有关:MyEclipse6.5自带的javaee.jar 中不包含mail相关的接口,而MyEclipse8.0自带的javaee.jar中包含了mail相关的接口,同时包含了接口的实现;

4、项目中直接用到了mail.jar中的类和方法;

此bug出现的原因是由于类冲突,因此去掉冲突的类即可;但是应该怎么选择呢?

分析如下:

a、此项目是Web项目,因此javaee.jar应保留;

b、javaee.jar中包含mail相关接口的实现,因此javaee.jar应保留;

c、项目中直接用到了mail.jar中的接口,因此mail.jar应该保留;

于是陷入两难。

不过,有个比较拙的方法,Maven依赖中不添加 JavaEE 的依赖,使用MyEclipse中自带的JaveEE依赖;同时,如果该依赖中包含mail相关的接口,将其删除即可,至此,问题解决。

不过,有人会问,如果我换了MyEclipse的版本,不是要每次都要修改吗,如果忘记了的话,岂不是白浪费时间嘛.....所以说,该解决方案仅仅是临时性的,比较正统的解决方案如下:

将pom.xml中 <scope>provided</scope> 的依赖放置到 其他依赖的后面即可,而不需要删除任何依赖。

  相关解决方案