我是用JSP做的,收发邮件,mail.jar和activation.jar我都放在了tomcat\common\lib目录下了,下面是程序片段:
Properties props = System.getProperties();
  Session foldersession = Session.getDefaultInstance(props,null);
  foldersession.setDebug(true);
  URLName urln = new URLName("pop3://"+session.getAttribute("mailuser")+":"+session.getAttribute("mailpwd")+"@"+session.getAttribute("mailhost")+"/");
      Store store = foldersession.getStore(urln);
  store.connect();
  Folder inbox = store.getFolder("INBOX");
  inbox.open(Folder.READ_WRITE);
  if(action.equals("delete")){ 
     if(msg!=null){
    int imsg = Integer.parseInt(msg);
Message message = inbox.getMessage(imsg);
if(message!=null){
message.setFlag(Flags.Flag.DELETED,true);
inbox.close(true);
}
 }
 response.sendRedirect("message.jsp?action = list");
  }
  else if(action.equals("list")){
        int count = inbox.getMessageCount();
for(int i = 1;i<= count;i++){
   Message message = inbox.getMessage(i);
   if(!message.isSet(Flags.Flag.DELETED)){ %>
   <form>
   [<%= i %>]<a href="maildetail.jsp?msg=<%= i %>">标题<%= message.getSubject() %></a>
   <a href="message.jsp?action = delete&msg=<%= i %>">删除</a>
   </form>
   <%}
}
 }
还程序还是报错:
javax.servlet.ServletException: javax/activation/DataSource
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:867)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:800)
org.apache.jsp.crm.message.message_jsp._jspService(message_jsp.java:256)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:133)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:311)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
root cause java.lang.NoClassDefFoundError: javax/activation/DataSource
com.sun.mail.pop3.POP3Folder.createMessage(POP3Folder.java:299)
com.sun.mail.pop3.POP3Folder.getMessage(POP3Folder.java:280)
org.apache.jsp.crm.message.message_jsp._jspService(message_jsp.java:191)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:133)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:311)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)是activation.jar包放的不对吗?还是程序上有问题?请大家指教,分不多,意思意思。

解决方案 »

  1.   

    没有javax/activation/DataSource的定义
      

  2.   

    下载javax.activation.jar包了?
    引入到应用的WEB-INF/lib/了?
      

  3.   

    mail.jar和activation.jar这2包我都放在WEB-INF/lib/了,怎么还找不到呢?
      

  4.   

    用的什么ide?
    如果是eclipse的话,选中项目名称,属性->构建路径->库->添加jar
      

  5.   

    用dreamweave2004,真的很想不通啊,我看过activation.jar包里明明有javax/activation/DataSource这个类啊
      

  6.   

    包没有导进来啊,把包的路径加到CLASSPATH中,不然找不到所需的包!
      

  7.   

    import="java.sql.*,java.util.Date,javax.mail.*,java.util.*, javax.activation.*,javax.mail.internet.*
      

  8.   

    wendy841015正解,我在classpath添加G:\tomcat\webapps\ROOT\WEB-INF\lib就行了,可很多书都没说要设置classpath,郁闷,害我弄了这么久。谢谢大家马上给分。