Domanda

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.

È stato utile?

Soluzione

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top