I am trying to configure javax.mail for our application running under Servlet Engine: 2.5
JSP Engine: 2.1 Application Server: Apache Tomcat/6.0.24 But emailing never works. The smtp server is up and running on the server. We can send email via the command line from localhost. Please help. Our system is running on Red Hat Enterprise Linux Server release 6.2 (Santiago) Linux xxx.xxx.xxx 2.6.32-220.4.2.el6.x86_64 #1 SMP Mon Feb 6 16:39:28 EST 2012 x86_64 x86_64 x86_64 GNU/Linux ############################################################################ ####################################### ############################################################################ ####################################### This is the conf file: Context.xml: <Resource name="mail/Session" auth="Container" type="javax.mail.Session" mail.smtp.host="localhost"/> ############################################################################ ####################################### Here is the result of 'find / -name '*mail*.jar'. /usr/lib64/eclipse/plugins/org.apache.ant_1.7.1.v20100518-1145/lib/ant-javam ail.jar /usr/share/java/classpathx-mail-1.3.1-monolithic.jar /usr/share/java/ant/ant-javamail.jar /usr/share/java/ant/ant-javamail-1.7.1.jar /usr/share/java/classpathx-mail-1.3.1-monolithic-1.1.1.jar /usr/share/java/javamail.jar /usr/share/java/classpathx-mail/mail-1.3.1-api.jar /usr/share/java/classpathx-mail/mailapi.jar /usr/share/java/classpathx-mail/mail-1.3.1-providers-1.1.1.jar /usr/share/java/classpathx-mail/mail-1.3.1-providers.jar /usr/share/java/classpathx-mail/mail-1.3.1-api-1.1.1.jar /usr/share/java/tomcat6/mail.jar /usr/share/ant/lib/ant-javamail.jar I don't have any mail.jar under the $TOMCAT_BASE/webapps/MyApps/WEB-INF/lib ############################################################################ ####################################### Here is the list files under tomcat6/lib -rw-r--r--. 1 root root 15153 Nov 30 11:27 annotations-api-6.0.24.jar lrwxrwxrwx. 1 root root 26 Mar 15 10:58 annotations-api.jar -> annotations-api-6.0.24.jar -rw-r--r--. 1 root root 1212081 Nov 30 11:27 catalina-6.0.24.jar -rw-r--r--. 1 root root 54149 Nov 30 11:27 catalina-ant-6.0.24.jar lrwxrwxrwx. 1 root root 23 Mar 15 10:58 catalina-ant.jar -> catalina-ant-6.0.24.jar -rw-r--r--. 1 root root 130751 Nov 30 11:27 catalina-ha-6.0.24.jar lrwxrwxrwx. 1 root root 22 Mar 15 10:58 catalina-ha.jar -> catalina-ha-6.0.24.jar lrwxrwxrwx. 1 root root 19 Mar 15 10:58 catalina.jar -> catalina-6.0.24.jar -rw-r--r--. 1 root root 235744 Nov 30 11:27 catalina-tribes-6.0.24.jar lrwxrwxrwx. 1 root root 26 Mar 15 10:58 catalina-tribes.jar -> catalina-tribes-6.0.24.jar lrwxrwxrwx. 1 root root 37 Mar 21 15:18 commons-beanutils.jar -> /usr/share/java/commons-beanutils.jar lrwxrwxrwx. 1 root root 39 Mar 15 10:58 commons-collections.jar -> /usr/share/java/commons-collections.jar lrwxrwxrwx. 1 root root 32 Mar 15 10:58 commons-dbcp.jar -> /usr/share/java/commons-dbcp.jar lrwxrwxrwx. 1 root root 32 Mar 15 10:58 commons-pool.jar -> /usr/share/java/commons-pool.jar -rw-r--r--. 1 root root 533217 Nov 30 11:27 jasper-6.0.24.jar -rw-r--r--. 1 root root 108903 Nov 30 11:27 jasper-el-6.0.24.jar lrwxrwxrwx. 1 root root 20 Mar 15 10:58 jasper-el.jar -> jasper-el-6.0.24.jar lrwxrwxrwx. 1 root root 17 Mar 15 10:58 jasper.jar -> jasper-6.0.24.jar lrwxrwxrwx. 1 root root 23 Mar 15 10:58 jasper-jdt.jar -> /usr/share/java/ecj.jar lrwxrwxrwx. 1 root root 25 Mar 15 10:58 log4j.jar -> /usr/share/java/log4j.jar -rw-r--r--. 1 root root 494975 Mar 24 08:21 mail.jar lrwxrwxrwx. 1 root root 33 Mar 15 10:58 mx4j-jmx.jar -> /usr/share/java/mx4j/mx4j-jmx.jar lrwxrwxrwx. 1 root root 36 Mar 15 10:58 mx4j-remote.jar -> /usr/share/java/mx4j/mx4j-remote.jar lrwxrwxrwx. 1 root root 44 Mar 19 20:56 ojdbc6.jar -> /usr/lib/oracle/11.2/client64/lib/ojdbc6.jar lrwxrwxrwx. 1 root root 32 Mar 15 10:58 tomcat6-el-2.1-api-6.0.24.jar -> ../tomcat6-el-2.1-api-6.0.24.jar lrwxrwxrwx. 1 root root 33 Mar 15 10:58 tomcat6-jsp-2.1-api-6.0.24.jar -> ../tomcat6-jsp-2.1-api-6.0.24.jar lrwxrwxrwx. 1 root root 37 Mar 15 10:58 tomcat6-servlet-2.5-api-6.0.24.jar -> ../tomcat6-servlet-2.5-api-6.0.24.jar -rw-r--r--. 1 root root 768615 Nov 30 11:26 tomcat-coyote-6.0.24.jar lrwxrwxrwx. 1 root root 24 Mar 15 10:58 tomcat-coyote.jar -> tomcat-coyote-6.0.24.jar -rw-r--r--. 1 root root 69826 Nov 30 11:27 tomcat-i18n-es-6.0.24.jar lrwxrwxrwx. 1 root root 25 Mar 15 10:58 tomcat-i18n-es.jar -> tomcat-i18n-es-6.0.24.jar -rw-r--r--. 1 root root 51772 Nov 30 11:27 tomcat-i18n-fr-6.0.24.jar lrwxrwxrwx. 1 root root 25 Mar 15 10:58 tomcat-i18n-fr.jar -> tomcat-i18n-fr-6.0.24.jar -rw-r--r--. 1 root root 54441 Nov 30 11:26 tomcat-i18n-ja-6.0.24.jar lrwxrwxrwx. 1 root root 25 Mar 15 10:58 tomcat-i18n-ja.jar -> tomcat-i18n-ja-6.0.24.jar -rw-r--r--. 1 root root 22926 Mar 20 14:24 tomcat-juli-adapters.jar lrwxrwxrwx. 1 root root 38 Mar 15 10:58 tomcat-juli.jar -> /usr/share/tomcat6/bin/tomcat-juli.jar The mail.jar comes from JavaMail 1.4.4 ############################################################################ ####################################### Here is the source java code that sends out email: ... Context initCtx = new InitialContext(); Context envCtx = (Context) initCtx.lookup("java:comp/env"); Session mSession = (Session) envCtx.lookup("mail/Session"); Based on my logging information, the code breaks right at the last line --->Session mSession = (Session) envCtx.lookup("mail/Session"); ############################################################################ ####################################### When I run the application the server gives the following error: javax.mail.Session cannot be cast to javax.mail.Session. No email is sent. ############################################################################ ####################################### If I remove mail.jar, then the application is broken and root cause is: javax.servlet.ServletException: java.lang.NoClassDefFoundError: javax/mail/Authenticator org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextI mpl.java:862) org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImp l.java:791) org.apache.jsp.index_jsp._jspService(index_jsp.java:149) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) javax.servlet.http.HttpServlet.service(HttpServlet.java:717) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:3 77) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260) javax.servlet.http.HttpServlet.service(HttpServlet.java:717) root cause java.lang.NoClassDefFoundError: javax/mail/Authenticator org.apache.naming.factory.MailSessionFactory.getObjectInstance(MailSessionFa ctory.java:105) org.apache.naming.factory.ResourceFactory.getObjectInstance(ResourceFactory. java:140) javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:321) org.apache.naming.NamingContext.lookup(NamingContext.java:793) org.apache.naming.NamingContext.lookup(NamingContext.java:140) org.apache.naming.NamingContext.lookup(NamingContext.java:781) org.apache.naming.NamingContext.lookup(NamingContext.java:153) .... org.apache.jsp.index_jsp._jspService(index_jsp.java:137) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) javax.servlet.http.HttpServlet.service(HttpServlet.java:717) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:3 77) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260) javax.servlet.http.HttpServlet.service(HttpServlet.java:717) root cause java.lang.ClassNotFoundException: javax.mail.Authenticator java.net.URLClassLoader$1.run(URLClassLoader.java:217) java.security.AccessController.doPrivileged(Native Method) java.net.URLClassLoader.findClass(URLClassLoader.java:205) java.lang.ClassLoader.loadClass(ClassLoader.java:321) java.lang.ClassLoader.loadClass(ClassLoader.java:266) org.apache.naming.factory.MailSessionFactory.getObjectInstance(MailSessionFa ctory.java:105) org.apache.naming.factory.ResourceFactory.getObjectInstance(ResourceFactory. java:140) javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:321) org.apache.naming.NamingContext.lookup(NamingContext.java:793) org.apache.naming.NamingContext.lookup(NamingContext.java:140) org.apache.naming.NamingContext.lookup(NamingContext.java:781) org.apache.naming.NamingContext.lookup(NamingContext.java:153) ..... org.apache.jsp.index_jsp._jspService(index_jsp.java:137) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) javax.servlet.http.HttpServlet.service(HttpServlet.java:717) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:3 77) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260) javax.servlet.http.HttpServlet.service(HttpServlet.java:717) ############################################################################ ####################################### I am guessing that classloading must have included some javax.mail somewhere which conflicts with mail.jar under tomcat6/lib. Please give me some suggestions. Thanks, Wayne