Skip to Main Content

Java EE (Java Enterprise Edition) General Discussion

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

ClassCastException

843830Jun 11 2007 — edited Nov 14 2007
This works on my local machine (using Tomcat 5 and javamail 1.4) but when I try it on my Linux machine (Fedora - still using tomcat 5 and javamail 1.4) I get the following exception:
java.lang.ClassCastException: gnu.mail.handler.TextPlain cannot be cast to javax.activation.DataContentHandler
javax.activation.MailcapCommandMap.createDataContentHandler(MailcapCommandMap.java:496)
javax.activation.DataHandler.getDataContentHandler(DataHandler.java:568)
javax.activation.DataHandler.writeTo(DataHandler.java:294)
javax.mail.internet.MimeUtility.getEncoding(MimeUtility.java:230)
javax.mail.internet.MimeBodyPart.updateHeaders(MimeBodyPart.java:1065)
javax.mail.internet.MimeMessage.updateHeaders(MimeMessage.java:1923)
javax.mail.internet.MimeMessage.saveChanges(MimeMessage.java:1904)
javax.mail.Transport.send(Transport.java:79)
controls.EmailUtil.sendEmail(EmailUtil.java:44)
lmt.ContactUs.doPost(ContactUs.java:42)
javax.servlet.http.HttpServlet.service(tomcat5-servlet-2.4-api-5.5.23.jar.so)
javax.servlet.http.HttpServlet.service(tomcat5-servlet-2.4-api-5.5.23.jar.so)

Here is the 'offending' code:
try{
		 
     
Properties props = new Properties();
 props.put("mail.smtp.host",SOME MAIL SERVER);
 Session session = Session.getDefaultInstance(props, null);
	
Message msg = new MimeMessage(session);
InternetAddress addressFrom = new InternetAddress(from);
msg.setFrom(addressFrom);
	
InternetAddress[] addressTo = new InternetAddress[recipients.length];
for (int i = 0; i < recipients.length; i++)
{
	addressTo[i] = new InternetAddress(recipients);
}
msg.setRecipients(Message.RecipientType.TO, addressTo); msg.addHeader("MyHeaderName", "myHeaderValue");
msg.setSubject(subject);
msg.setContent(message, "text/plain");
Transport.send(msg);
return true;
}
catch(MessagingException me)
{
return false;
}



it fails at 'Transport.send(msg);'
Obviously I'm a noob with javamail and I really don't understand why it works on my local machine but not on the server.
Anyway help is greatly appreciated.

Message was edited by:
uberalles
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Dec 12 2007
Added on Jun 11 2007
3 comments
1,595 views