一、报错背景
在进行SSH项目过程中,在发送激活邮件时出现的错误。
Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream
二、主要原因
javax.mail和javax.activation这两个包已经在javaEE5当中属于基础包了,JDK中已经自带了。
三、解决方法
进入到以下目录
C:\Users\jjq\MyEclipse\Common\plugins\com.genuitec.eclipse.j2eedt.core_10.5.0.me201207171805\data\libraryset\EE_5
可以看到javaee.jar,右击javaee.jar——打开方式——360压缩,把这个文件打开,然后进到javax文件夹里,删除mail.jar和activation.jar两个文件夹(为了安全起见最好提前备份一下喽)
原本以为问题解决了,可是又有了新问题,有问题好啊,因为可以使我进步,经过排查,原来是因为自己粗心,把=写成了-。末尾的charset=UTF-8,我写成了charset-UTF-8,所以弹出的以下错误。
//设置邮件正文:
message.setContent("<h1>购物天堂传智商城官方激活邮件!点下面链接完成激活操作!</h1><h3><a href='http://192.168.21.171:8080/shop/user_active.action?code="+code+"'>http://192.168.21.171:8080/shop/user_active.action?code="+code+"</a></h3>", "text/html;charset=UTF-8");
这次问题终于解决了,faxmail可以成功收邮件了。
【总结】细节决定成败!