写了一个action用于通知各地区公司管理员即将到期的用户,之前都正常问题在于我在工程中建立了一个SendMail的工具类用于进行邮件通知,在java工程中测试该类正常,但是在action调用该类时需要new一个新的对象结果就会报错 SendMail sm=new SendMail();
报错信息为:
java.lang.reflect.InvocationTargetException
        sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)java.lang.NoClassDefFoundError: javax/mail/MessagingException
        com.y09.action.VdbAction.ComingCloseAction(VdbAction.java:197)java.lang.ClassNotFoundException: javax.mail.MessagingException
        org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1680)
        org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526)
        java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
        com.y09.action.VdbAction.ComingCloseAction(VdbAction.java:197)
public String ComingCloseAction(){
//全部即将到期的用户
List<VdbData> allCloseList = vdbService.selComingCloseService();
//创建一个MAP用户存放 地区公司名称与管理员邮箱的键值对
Map<String,String> unitMap =new HashMap<String,String>();
//获取全部单位及对应邮箱
List<VdbData> list = vdbService.selComingCloseService();
//删除重复的地区公司名称
for(int i=0;i<list.size()-1;i++){
for(int j=list.size()-1;j>i;j--){
if(list.get(j).getUnit().equals(list.get(i).getUnit())){
list.remove(j);
}
}
}
//单位名称集合
List<String> unitList=new ArrayList<String>();
//遍历 地区公司集合
Iterator<VdbData> it = list.iterator();
while(it.hasNext()){
VdbData vd=it.next();
String unitName=vd.getUnit();//获取公司名称
unitList.add(unitName);
String tomail=vd.getDistrictadminEmail();//获取管理员邮箱
unitMap.put(unitName, tomail);//存放键值对
}
Iterator<String> unitIt=unitList.iterator();
while(unitIt.hasNext()){
//单位名称
String unitName=unitIt.next();
String toMail=unitMap.get(unitName);
String context=null;//邮件内容
for(VdbData vd:allCloseList){
String nowUnitName=vd.getUnit();
if(nowUnitName==unitName){
context=context+vd.getClosedate()+" "+vd.getUsername()+" "+"|"+" ";
System.out.println(context);
}
}
SendMail sm=new SendMail();
//发件人、收件人、标题
sm.setAddress("[email protected]",toMail,unitName+"预关闭账号通知");
sm.send(context);
}
return "ComingCloseAction";
}