Thank you P for your reply. Well, it sounds weird, doesn't it? :D
It's indeed not a company but a university so the application is running on the server at the uni. However, the application development is funded by some other organisation. :) We are now offering the service of the application yet there will be possibly some opportunity that this application will run on another server. Generally what you said is correct. However, I believe, if a class is in java or javax package it might not be loaded from the libraries in the WEB-INF/lib directory first but the common/lib one, as mentioned in the FAQ found from the following link. http://ws.apache.org/axis/faq.html#faq5 "*Why do some classes fail to load under Tomcat?* Tomcat will not load classes with package names starting "java." or "javax." from the WEB-INF directory. jars containing such classes need to be installed in $TOMCAT_HOME/common/lib rather than in WEB-INF/lib. Currently (April 25, 2002) jaxrpc.jar is such a jar." Regards, Kevin 2008/10/25 Pid <[EMAIL PROTECTED]> > Kevin SeongHyun Lee wrote: > > Hello, > > > > I'm trying to use JavaMail and the necessary libraries are in the > > WEB-INF/lib of my application. It works fine in my development > > environment. However, the problem is that after it is installed in the > > production environment and tries to send an email, it always throws > > NoSuchProviderException exception like the following lines. > > > > javax.mail.NoSuchProviderException: smtp > > at javax.mail.Session.getService(Session.java:794) > > at javax.mail.Session.getTransport(Session.java:718) > > at javax.mail.Session.getTransport(Session.java:661) > > at javax.mail.Session.getTransport(Session.java:641) > > at javax.mail.Session.getTransport(Session.java:696) > > at javax.mail.Transport.send0(Transport.java:186) > > at javax.mail.Transport.send(Transport.java:118) > > ... > > > > I found that the common/lib directory has javamail.jar file which is a > > different version of JavaMail belongs to Tomcat in the production > > environment and it causes the problem. If I remove one of them, it > > works yet I have to keep the libraries in my application as required by > > my client, it must be designed to work in any Tomcat server with default > > Tomcat libraries and the server admin also said he has to keep it there. > > > So, your server admin needs it to be in common/lib and your client needs > it to be in WEB-INF/lib? Who does the server admin work for? > > Sounds like there's a conflict between the client spec and the server > system provided - not your application. > > > > Jars in WEB-INF/lib should be loaded first, as servlet containers use an > inverted classloader hierarchy. Having said that, allowing duplicate > jar files in the container usually ends in disaster, try not to do it. > > is it possible to persuade the server admin to upgrade the javamail > install? > > > p > > > > > So I would like to know if there is any way to choose which libraries to > > use. As it is in javax package, common/lib has higher priority I think. > > Is there any way to change it so that my application uses JavaMail in > > WEB-INF/lib instead of common/lib one? > > > > Regards, > > Kevin > > > > --------------------------------------------------------------------- > > To start a new topic, e-mail: users@tomcat.apache.org > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > > --------------------------------------------------------------------- > To start a new topic, e-mail: users@tomcat.apache.org > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > >