javax.mail.NoSuchProviderException: Provider class does not have a constructor(Session, URLName) - Yash-777/Java_Mail GitHub Wiki

Exception: javax.mail.NoSuchProviderException: Provider class does not have a constructor(Session, URLName)

SOLUTION: javax.mail/1.6.2.jar file is not included in the WebApp.war file which is deployed in the server. If not available then after creating the war build. In war file, lib folder download javax.mail.jar and add it

Different Ways of solution:

  • stackpost Removing the duplicate javax.mail classes from the webapp fixes the problem.
  • POST: I read some threads in several forums where people had encountered the same when there were multiple versions of java mail available through different classloaders.

Fail LOG:

DEBUG: getProvider() returning provider protocol=imap; type=javax.mail.Provider$Type@6accb714; class=com.sun.mail.imap.IMAPStore; vendor=Oracle

javax.mail.NoSuchProviderException: Provider class does not have a constructor(Session, URLName): protocol=imap; type=javax.mail.Provider$Type@6accb714; class=com.sun.mail.imap.IMAPStore; vendor=Oracle
at javax.mail.Session.getService(Session.java:488)
at javax.mail.Session.getStore(Session.java:296)
at javax.mail.Session.getStore(Session.java:271)
at com.java.mail.IMAP_MimeMail.mailFetch(IMAP_MimeMail.java:317)   // session.getStore("imap");

Success LOG:

DEBUG: JavaMail version 1.6.2
DEBUG: successfully loaded resource: /META-INF/javamail.default.address.map
DEBUG: setDebug: JavaMail version 1.6.2
DEBUG: getProvider() returning javax.mail.Provider[STORE,imap,com.sun.mail.imap.IMAPStore,Oracle]
DEBUG IMAP: mail.imap.partialfetch: false
DEBUG IMAP: mail.imap.ignorebodystructuresize: false

pom.xml

<!-- Java Mail --> 
<dependency>
  <groupId>org.bouncycastle</groupId>
  <artifactId>bcpkix-jdk15on</artifactId>
  <version>1.58</version>
</dependency>
<dependency>
  <groupId>org.bouncycastle</groupId>
  <artifactId>bcmail-jdk15on</artifactId>
  <version>1.58</version>
</dependency>
<dependency>
  <groupId>org.bouncycastle</groupId>
  <artifactId>bcprov-ext-jdk15on</artifactId>
  <version>1.58</version>
</dependency>
<!-- javax.servlet.ServletException: org.glassfish.jersey.server.ContainerException: java.lang.NoClassDefFoundError: org/bouncycastle/jce/provider/BouncyCastleProvider -->
<dependency>
  <groupId>org.bouncycastle</groupId>
  <artifactId>bcprov-jdk15on</artifactId><!--  bcprov-jdk16[1.46] -->
  <version>1.58</version>
</dependency>

<dependency>
  <groupId>org.apache.pdfbox</groupId> 
  <artifactId>pdfbox</artifactId>
  <version>2.0.8</version>
</dependency>

<!-- import org.apache.poi.hsmf.MAPIMessage; import org.apache.poi.hsmf.exceptions.ChunkNotFoundException; -->
<dependency>
  <groupId>ch.astorm</groupId>
  <artifactId>jotlmsg</artifactId>
  <version>1.7</version>
  <exclusions>
      <exclusion> <groupId>javax.mail</groupId> <artifactId>javax.mail-api</artifactId> </exclusion>
      <exclusion> <groupId>javax.activation</groupId> <artifactId>activation</artifactId> </exclusion>
    </exclusions>
</dependency>

<!-- NoClassDefFoundError: com/sun/mail/util/MailLogger -->
<dependency>
  <groupId>com.sun.mail</groupId>
  <artifactId>javax.mail</artifactId>
  <version>1.6.2</version>
  <scope>provided</scope>
  <exclusions>
    <exclusion> <groupId>javax.activation</groupId> <artifactId>activation</artifactId> </exclusion>
  </exclusions>
</dependency>
⚠️ **GitHub.com Fallback** ⚠️