Question

I am using maven in eclipse and tomcat server.

I have to make small program which sends an email if required every one hour using java mail.

I have modified my web.xml in webapp.

I added mail in POM.xml like this.

<dependency>
    <groupId>javax.mail</groupId>
    <artifactId>mail</artifactId>
    <version>1.4.7</version>
    <scope>provided</scope>
    <exclusions>
        <exclusion>
            <artifactId>activation</artifactId>
            <groupId>javax.activation</groupId>
        </exclusion>
    </exclusions>
</dependency>

as I don't require activation because using the jdk 1.6.

I also modified the context.xml

Then copied the mail.jar into tomcat/lib folder.

But i am getting the weird error.

java.lang.ClassCastException: javax.mail.Session cannot be cast to javax.mail.Session
    at fr.project.batch.jobs.SendEmail.execute(SendEmail.java:53)
    at org.quartz.core.JobRunShell.run(JobRunShell.java:216)
    at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:549)
2014-04-07 10:01:47,539 ERROR   duler_Worker-1  Job (DEFAULT.SendMail threw an exception.   [ErrorLogger]
org.quartz.SchedulerException: Job threw an unhandled exception. [See nested exception: java.lang.ClassCastException: javax.mail.Session cannot be cast to javax.mail.Session]
    at org.quartz.core.JobRunShell.run(JobRunShell.java:227)
    at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:549)
Caused by: java.lang.ClassCastException: javax.mail.Session cannot be cast to javax.mail.Session
    at fr.project.batch.jobs.SendEmail.execute(SendEmail.java:53)
    at org.quartz.core.JobRunShell.run(JobRunShell.java:216)
    ... 1 more

I have read many times in tomcat 6.0 JavaMail ressources and gone through many answers of stackoverflow.

Was it helpful?

Solution

This problem occurs in the server because the lib of Tomcat and you application both have their own copy of mail.jar (in WEB-INF/lib), so the classloaders can load two different Session.If you delete the mail.jarfrom your application, this problem will be solved.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top