aspose file tools*
The moose likes Servlets and the fly likes What jar file contains sun.net.smtp.SmtpClient? Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Servlets
Bookmark "What jar file contains sun.net.smtp.SmtpClient?" Watch "What jar file contains sun.net.smtp.SmtpClient?" New topic
Author

What jar file contains sun.net.smtp.SmtpClient?

Tim Hannaford
Greenhorn

Joined: Jun 16, 2004
Posts: 6
I am trying to email off of servlet, but I am getting this error:

javax.servlet.ServletException: Servlet.init() for servlet login threw exception
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:935)
at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:653)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:190)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2343)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.ajp.tomcat4.Ajp13Processor.process(Ajp13Processor.java:429)
at org.apache.ajp.tomcat4.Ajp13Processor.run(Ajp13Processor.java:495)
at java.lang.Thread.run(Thread.java:536)


root cause

java.lang.NoClassDefFoundError: sun/net/smtp/SmtpClient
at servletutilities.ThreadRunner.(ThreadRunner.java:22)
at servletutilities.ThreadRunner.instance(ThreadRunner.java:70)
at general.login.init(login.java:42)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:916)
at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:653)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:190)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2343)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.ajp.tomcat4.Ajp13Processor.process(Ajp13Processor.java:429)
at org.apache.ajp.tomcat4.Ajp13Processor.run(Ajp13Processor.java:495)
at java.lang.Thread.run(Thread.java:536)

I am running a dedicated server, and this is where the message occurs. But when I run the same code on my PC I get no exception. So the server must be missing the jar file that contains sun.net.smtp.SmtpClient. Where is the sun.net.smtp.SmtpClient located? How do I correct this on the server? Do I just add the jar to the WEB-INF or do I put it in the lib directory under tomcat?
Natarajan Shankar
Ranch Hand

Joined: Jun 10, 2004
Posts: 53
Hi Tim,
The jar file which contains (sun.net.smtp.SmtpClient) you can place it in WEB-INF/lib directory. When you place any jar/zip file in this diretory web-server will automatically will set the CLASSPATH and retrieve the file.

Best Regards
ShankarSCJP/ SCWCD


Best Regards<br />N.Shankar<br />SCJP, SCWCD
Tim Hannaford
Greenhorn

Joined: Jun 16, 2004
Posts: 6
Thats what I was thinking but I can't figure which jar has the sun.net.smtp.SmtpClient. I tried using the rt.jar from my jdk1.4.02, but I ended up with the same error. I also notice on another webpage someone metioned it was in the j2ee.jar, but I searched my PC and couldn't find it.
Lets say once I find the jar file that has the classes I need in it. I place it in the WEB-INF/lib directory, can I still import the classes I need or do I need to use runtime class loader like Class.forName("").
David O'Meara
Rancher

Joined: Mar 06, 2001
Posts: 13459

You'll get j2ee.jar if you download and install it from the Sun site. Tomcat is a servlet container and so it only includes servlet.jar which is a subset of j2ee.jar

If you drop it in the web-inf/lib directory, it is made available at runtime to all classes running in that web application context. Other options would be to drop it in the common/lib making it available at runtime to all web application contexts in the server, or drop it in the <java_home>/jre/lib/ext directory, where it becomes available at compile and runtime to all applications running under that JVM.

Typically with jars it's best to give them the smallest scope possible ie put them in web-inf/lib, but I tend to be lazy and place j2ee.jar in the jre/lib/ext directory.

Dave
Tim Hannaford
Greenhorn

Joined: Jun 16, 2004
Posts: 6
Thanks you've been real helpful
Tim Hannaford
Greenhorn

Joined: Jun 16, 2004
Posts: 6
One more quick question, do you know where I can get j2ee.jar for linux. I don't want the entire j2eesdk, just the j2ee.jar file.

Thanks
 
wood burning stoves
 
subject: What jar file contains sun.net.smtp.SmtpClient?