I have been experiencing "java.lang.ClassNotFoundException: com.mysql.jdbc.Driver" when attempting
to run my webapp under tomcat 6.0.18. I have run my application successfully before under prior versions of
Tomcat. I have found and implemented a solution that works, but I believe it is a "wrong" solution
and I want to provoke some discussion about a "right" solution. Let me explain:
My environment:
Tomcat 6.0.18
jse 1.6.0_05
using hibernate 3.0
using mySQL standard-4.1.14
My development environment is driven by Ant 1.6.5
and ... irrelevant to the issue but ... my front end code is Google Web Toolkit
(GWT) based.
Now ...
I kept getting mysql driver class not found at runtime. I have the driver
mysql-connector-java-3.1.10-bin.jar file in myapp/WEB-INF/lib. I would have thought that would
have solved the problem in a nice, tidy fashion, but it did not. After further investigation of
the Tomcat 6 class loading mechanism I found this bit of information: "...plus classes and
resources in JAR files under the /WEB-INF/lib directory of your web application archive, are made
visible to the containing web application, but to no others." I believe I am being caught on
that "but to no others" phrase. That would mean code directly in my app could see all
the jar files in WEB-INF/lib but hibernate code, for instance, could not ?? !! even though
conceptually the hibernate code is configured to be an integral part of my app ??
A solution I found to work is to copy the mysql-connector-java-3.1.10-bin.jar file into my
jseHOME/jre/lib/ext directory. Now my app can see the driver at runtime just fine. But ... that
seems a "wrong" solution to me. A "right" solution would bundle access to that
jar file into the configuration of my webapp, which is what I expect and get when I put library
jar files in WEB-INF/lib.
Is there a "more right" solution that allows me to keep the library jar files
for the mysql driver more closely bundled with my app, rather than force it to be seen be
all users of java se 1.6.0_05?? ... and still meet the requirements of Tomcat's class
loading mechanisms?
Thanks.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]