javax.mail.NoSuchProviderException smtp
swarsa Feb 22, 2017 11:45 AMHello,
I'm trying to port over a working app from WebSphere to JBoss EAP 7. Most things are working now, but I just discovered that email (which is working in WebSphere) is not working with same code, configuration and jars in JBoss. I get:
09:05:02,815 INFO [stdout] (default task-66) Caused by: javax.mail.NoSuchProviderException: smtp
09:05:02,815 INFO [stdout] (default task-66) at javax.mail.Session.getService(Session.java:794)
09:05:02,815 INFO [stdout] (default task-66) at javax.mail.Session.getTransport(Session.java:716)
09:05:02,815 INFO [stdout] (default task-66) at javax.mail.Session.getTransport(Session.java:656)
09:05:02,816 INFO [stdout] (default task-66) at javax.mail.Session.getTransport(Session.java:636)
09:05:02,816 INFO [stdout] (default task-66) at org.springframework.mail.javamail.JavaMailSenderImpl.getTransport(JavaMailSenderImpl.java:521)
09:05:02,816 INFO [stdout] (default task-66) at org.springframework.mail.javamail.JavaMailSenderImpl.connectTransport(JavaMailSenderImpl.java:500)
09:05:02,816 INFO [stdout] (default task-66) at org.springframework.mail.javamail.JavaMailSenderImpl.doSend(JavaMailSenderImpl.java:421)
I have inspected the session object in the debugger and see the following providers:
javax.mail.Provider[STORE,imap,com.sun.mail.imap.IMAPStore,Sun Microsystems, Inc],
javax.mail.Provider[STORE,imaps,com.sun.mail.imap.IMAPSSLStore,Sun Microsystems, Inc],
javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc],
javax.mail.Provider[TRANSPORT,smtps,com.sun.mail.smtp.SMTPSSLTransport,Sun Microsystems, Inc],
javax.mail.Provider[STORE,pop3,com.sun.mail.pop3.POP3Store,Sun Microsystems, Inc],
javax.mail.Provider[STORE,pop3s,com.sun.mail.pop3.POP3SSLStore,Sun Microsystems, Inc]
I have a jar in my EAR called mail.jar which inside it has a manifest.mf file which reports version 1.4, but I noticed that there is also a jar in JBoss called javax.mail-1.5.5.redhat-1.jar. I wondered if maybe there was a conflict between my jar and the one provided by JBoss, so I put an exclusion statement for that module in my jboss-deployment-structure.xml:
<exclusions>
<module name="javax.mail.api" />
</exclusions>
Then I get javax.activation.UnsupportedDataTypeException: no object DCH for MIME type multipart/mixed; boundary="----=_Part_0_1207807808.1487780234754".
I found some more detailed logging regarding the above exception on the server log:
2017-02-22 09:42:26,767 FINE [javax.activation] (default task-45) MailcapCommandMap: load HOME
2017-02-22 09:42:26,772 FINE [javax.activation] (default task-45) new MailcapFile: file C:\Users\xxxxxxx\.mailcap
2017-02-22 09:42:26,773 FINE [javax.activation] (default task-45) MailcapCommandMap: load SYS
2017-02-22 09:42:26,773 FINE [javax.activation] (default task-45) new MailcapFile: file C:\Java\jdk1.8.0_112\jre\lib\mailcap
2017-02-22 09:42:26,773 FINE [javax.activation] (default task-45) MailcapCommandMap: load JAR
2017-02-22 09:42:26,774 FINE [javax.activation] (default task-45) MailcapCommandMap: !anyLoaded
2017-02-22 09:42:26,774 FINE [javax.activation] (default task-45) MailcapCommandMap: not loading mailcap file: /META-INF/mailcap
2017-02-22 09:42:26,774 FINE [javax.activation] (default task-45) MailcapCommandMap: load DEF
2017-02-22 09:42:26,774 FINE [javax.activation] (default task-45) new MailcapFile: InputStream
2017-02-22 09:42:26,776 FINE [javax.activation] (default task-45) parse: image/gif;; x-java-view=com.sun.activation.viewers.ImageViewer
2017-02-22 09:42:26,777 FINE [javax.activation] (default task-45) Type: image/gif
2017-02-22 09:42:26,777 FINE [javax.activation] (default task-45) Command: view, Class: com.sun.activation.viewers.ImageViewer
2017-02-22 09:42:26,777 FINE [javax.activation] (default task-45) parse: image/jpeg;; x-java-view=com.sun.activation.viewers.ImageViewer
2017-02-22 09:42:26,777 FINE [javax.activation] (default task-45) Type: image/jpeg
2017-02-22 09:42:26,777 FINE [javax.activation] (default task-45) Command: view, Class: com.sun.activation.viewers.ImageViewer
2017-02-22 09:42:26,777 FINE [javax.activation] (default task-45) parse: text/*;; x-java-view=com.sun.activation.viewers.TextViewer
2017-02-22 09:42:26,778 FINE [javax.activation] (default task-45) Type: text/*
2017-02-22 09:42:26,778 FINE [javax.activation] (default task-45) Command: view, Class: com.sun.activation.viewers.TextViewer
2017-02-22 09:42:26,778 FINE [javax.activation] (default task-45) parse: text/*;; x-java-edit=com.sun.activation.viewers.TextEditor
2017-02-22 09:42:26,778 FINE [javax.activation] (default task-45) Type: text/*
2017-02-22 09:42:26,778 FINE [javax.activation] (default task-45) Command: edit, Class: com.sun.activation.viewers.TextEditor
2017-02-22 09:42:26,778 FINE [javax.activation] (default task-45) Merging commands for type text/*
2017-02-22 09:42:26,778 FINE [javax.activation] (default task-45) MailcapCommandMap: successfully loaded mailcap file: /META-INF/mailcap.default
2017-02-22 09:42:26,778 FINE [javax.activation] (default task-45) MailcapCommandMap: createDataContentHandler for text/html
2017-02-22 09:42:26,778 FINE [javax.activation] (default task-45) search DB #1
2017-02-22 09:42:26,778 FINE [javax.activation] (default task-45) search fallback DB #1
2017-02-22 09:42:26,850 FINE [javax.activation] (default task-45) MailcapCommandMap: createDataContentHandler for multipart/mixed
2017-02-22 09:42:26,851 FINE [javax.activation] (default task-45) search DB #1
2017-02-22 09:42:26,851 FINE [javax.activation] (default task-45) search fallback DB #1
I see a lot of information about how to set up email in JBoss, but I was hoping I could just port over the working system with as minimal changes as possible.
Any suggestions?
Thanks,
Steve