Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Java > JavaMail Create Session Problem

Reply
Thread Tools

JavaMail Create Session Problem

 
 
Mikey
Guest
Posts: n/a
 
      01-28-2006
I am attempting to use JavaMail to send an email from a servlet running
under Tomcat. The code compiles fine but the servlet processing stops
on an attempt to create a session instance. I'm new to Java and am
probably making a basic mistake. The code segments are shown below. The
processing stops at the "Session.." line with the Tomcat root cause
error message:

"java.lang.NoClassDefFoundError: javax/mail/Session"

I've tried several variations of examples that I've found in Java
references - with no luck.

Any help would be appreciated.

Thanks
-------------------------------------------
Code snippets:

import java.io.*;
import java.util.*;
import java.text.*;
import javax.mail.*;
import javax.mail.internet.*;
import java.util.Properties;
........
Properties props = new Properties();
props.setProperty("mail.transport.protocol", "smtp");
props.setProperty("mail.host", "host mail server");
props.setProperty("mail.user", "sender email");
props.setProperty("mail.password", "my password");
Session mailSession = Session.getDefaultInstance(props, null);
try {
Transport transport = mailSession.getTransport();

MimeMessage message = new MimeMessage(mailSession);
message.setContent("This is a test", "text/plain");
message.addRecipient(Message.RecipientType.TO,
new InternetAddress("(E-Mail Removed)"));

transport.connect();
transport.sendMessage(message,
message.getRecipients(Message.RecipientType.TO));
transport.close();
} catch (MessagingException ex) {
while ((ex = (MessagingException)ex.getNextException()) != null) {
ex.printStackTrace();
}
}

 
Reply With Quote
 
 
 
 
James Westby
Guest
Posts: n/a
 
      01-28-2006
Mikey wrote:
> I am attempting to use JavaMail to send an email from a servlet running
> under Tomcat. The code compiles fine but the servlet processing stops
> on an attempt to create a session instance. I'm new to Java and am
> probably making a basic mistake. The code segments are shown below. The
> processing stops at the "Session.." line with the Tomcat root cause
> error message:
>
> "java.lang.NoClassDefFoundError: javax/mail/Session"
>
> I've tried several variations of examples that I've found in Java
> references - with no luck.
>
> Any help would be appreciated.

[snip]

Do you have the JavaMail classes available to the servlet when running.
i.e. do you have the JavaMail jar on the classpath somewhere?

James
 
Reply With Quote
 
 
 
 
Mikey
Guest
Posts: n/a
 
      01-29-2006

James Westby wrote:
> Mikey wrote:
> > I am attempting to use JavaMail to send an email from a servlet running
> > under Tomcat. The code compiles fine but the servlet processing stops
> > on an attempt to create a session instance. I'm new to Java and am
> > probably making a basic mistake. The code segments are shown below. The
> > processing stops at the "Session.." line with the Tomcat root cause
> > error message:
> >
> > "java.lang.NoClassDefFoundError: javax/mail/Session"
> >
> > I've tried several variations of examples that I've found in Java
> > references - with no luck.
> >
> > Any help would be appreciated.

> [snip]
>
> Do you have the JavaMail classes available to the servlet when running.
> i.e. do you have the JavaMail jar on the classpath somewhere?
>
> James


 
Reply With Quote
 
Mikey
Guest
Posts: n/a
 
      01-29-2006
James,

Thanks for your reply. I have the following in my classpath

/opt/jakarta-tomcat-4.1.31/webapps/pdf/WEB-INF/lib/javamail-1.3.3_01/mail.jar:/opt/jakarta-tomcat-4.1.31/webapps/pdf
/WEB-INF/lib/jaf-1.0.2/activation.jar

These were the two jar files described in the JavaMail installation
instructions.

Mike

 
Reply With Quote
 
Raymond DeCampo
Guest
Posts: n/a
 
      01-29-2006
Mikey wrote:
> James,
>
> Thanks for your reply. I have the following in my classpath
>
> /opt/jakarta-tomcat-4.1.31/webapps/pdf/WEB-INF/lib/javamail-1.3.3_01/mail.jar:/opt/jakarta-tomcat-4.1.31/webapps/pdf
> /WEB-INF/lib/jaf-1.0.2/activation.jar
>
> These were the two jar files described in the JavaMail installation
> instructions.
>


Classloading inside of web containers works differently from
classloading in other programs. The we container will usually supply an
isolated classloading environment for each web application.

My recommendation is for you to remove the above entries from the
classpath for the Tomcat instance. Then, place the jars directly in the
WEB-INF/lib directory for the web application (not in subdirectories as
above).

Let us know how it works out.

HTH,
Ray

--
This signature intentionally left blank.
 
Reply With Quote
 
James Westby
Guest
Posts: n/a
 
      01-29-2006
Mikey wrote:
> James,
>
> Thanks for your reply. I have the following in my classpath
>
> /opt/jakarta-tomcat-4.1.31/webapps/pdf/WEB-INF/lib/javamail-1.3.3_01/mail.jar:/opt/jakarta-tomcat-4.1.31/webapps/pdf
> /WEB-INF/lib/jaf-1.0.2/activation.jar
>
> These were the two jar files described in the JavaMail installation
> instructions.
>
> Mike
>


Hi,

So you have the Jars. That's a good start. It's a good idea to check
that you were at least trying to make them accessible to the servlet.

First you may wish to have a look, here.

http://mindprod.com/Jgloss/runerrorm...SDEFFOUNDERROR

It's a long list of the possible causes off this error, scan it and see
if you think any of them might be affecting you.

I have to apologise now as when I said are they on the classpath, I was
being a little naive, as I'm not sure how Tomcat treats classpaths. You
might want to read this, it was certainly informative for me,

http://tomcat.apache.org/tomcat-4.1-...der-howto.html


It looks like you're trying to use the last classloader listed, WebAppX,
which suggests that the jars go under webapp/WEB-INF/lib/. I'm flaky on
classloaders, and so I'm not sure if they'll lok in subdirectories of
that. I would recommend trying to move the jars directly in to lib/
directory, and see if it works then. Worth a try I think. If it doesn't
work then someone else with a bit more knowledge of Tomcat and
classloaders might be able to help.

Are you using any other external jars in your project?

Have you verified that the jar actually contains the relevant class file
(a long shot).


James
 
Reply With Quote
 
Mikey
Guest
Posts: n/a
 
      01-30-2006
Well, I tried a variety of combinations of places to put mail.jar and
activation.jar. The combination that partially worked was to put the
jar files in,

/opt/jakarta-tomcat-4.1.31/common/lib

and add a path to these jar files in CLASSPATH. However, the compile
couldn't find,

import javax.mail.*;
import javax.mail.internet.*;

unless CLASSPATH also included the path to the directories where I
originally uploaded and installed JavaMail and the Activation software
- which I added to CLASSPATH,


/opt/jakarta-tomcat-4.1.31/webapps/pdf/WEB-INF/lib/javamail-1.3.3_01/mail.jar

/opt/jakarta-tomcat-4.1.31/webapps/pdf/WEB-INF/lib/jaf-1.0.2/activation.jar

Now, at least I'm able to create a session.

I took this project over from someone who set up the Tomcat environment
and I don't know why his jar file is where it is or why the CLASSPATH
is configured the way it is. I'm partly just mimicking what he had
done. Hence my confusion.

I'm now getting an error at the next step of setting up the email for
transmitting:

com.sun.mail.smtp.SMTPAddressFailedException: 550 5.7.1
<(E-Mail Removed)>... Relaying denied. IP name lookup failed
[64.34.194.52]

at
com.sun.mail.smtp.SMTPTransport.rcptTo(SMTPTranspo rt.java:992)
at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTr ansport.java:536)
.....

This one I'm going to tackle on my own. There's a lot to learn here.

Thanks to all for your assistance.

Mike

 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
How to create new session when new IE session is opened? albertly ASP .Net 3 02-08-2008 03:41 AM
Session Timeout problems-web.confg session state and IIS session s =?Utf-8?B?Um9iSEs=?= ASP .Net 4 04-11-2007 04:52 PM
how can I create new session without destroy old session ijevsk@gmail.com ASP General 1 12-11-2006 11:11 AM
Managing Session with javamail necleto2000@yahoo.fr Java 4 01-22-2006 10:56 PM
Session State - What does it take to establish one single ASP.NET session per "browser session" Jeff Smythe ASP .Net 3 01-02-2004 04:10 AM



Advertisments