首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

跪求好手帮助

2013-08-04 
跪求高手帮助本帖最后由 shejianan 于 2013-07-29 22:47:14 编辑写了一个action用于通知各地区公司管理员

跪求高手帮助
本帖最后由 shejianan 于 2013-07-29 22:47:14 编辑 写了一个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("vpn-400@petrochina.com.cn",toMail,unitName+"预关闭账号通知");
           sm.send(context);
       }
       return "ComingCloseAction";
    }


[解决办法]
先调好格式,再把ComingCloseAction类贴出来看看。
目测少了jar包(java.lang.ClassNotFoundException: javax.mail.MessagingException 看看这个类所在的jar包是否在服务器上有,要注意包路径和类名),看看服务器上工程下,相关的jar包可少了。

热点排行
Bad Request.