ClassCastException

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[i]);

}

msg.setRecipients(Message.RecipientType.TO, addressTo);msg.addHeader("MyHeaderName","myHeaderValue");

msg.setSubject(subject);

msg.setContent(message,"text/plain");

Transport.send(msg);

returntrue;

}

catch(MessagingException me)

{

returnfalse;

}

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

[3002 byte] By [uberallesa] at [2007-11-27 7:05:38]
# 1
Based on the class mentioned in the exception message, I'm going to guessthat you've got some mix of the gnu version of JavaMail and the Sun versionof JavaMail in your CLASSPATH and that's confusing things. Also check yourjre/lib/ext directory.
bshannona at 2007-7-12 18:56:52 > top of Java-index,Enterprise & Remote Computing,Enterprise Technologies...
# 2
That was exactly the problem. Thanks for the help.
uberallesa at 2007-7-12 18:56:52 > top of Java-index,Enterprise & Remote Computing,Enterprise Technologies...