> But then, if the API library calls a 3rd party library, that library 
> can't be put in WEB-INF/lib either - it has to be put in the tomcat's 
> startup classpath as well.
Ok. I will repeat to ensure I understand it:
You have a development system where you do not want to jar for each test of
your API, you also do not want to war (ant task) before you test.
Your API depends on 3rd party JARs which are not in the default distribution
of Tomcat.
For your development system only (please do not use this on a production
machine):
Put your classes in
TOMCAT_ROOT/shared/classes
(create the folder if not existing)
put your libs in
TOMCAT_ROOT/shared/lib
Avoid any JAR duplication (JAR x.y-1.0.jar is in two places: bootclasspath,
common/lib, shared/lib, WEB-INF/lib), it will cause you a lot of pain to
find out which JAR causes the (potential) runtime error and why.


Read for
http://tomcat.apache.org/tomcat-5.5-doc/class-loader-howto.html
for details.

For any production environment: Avoid the use of the sharded classloader as
much as you can. If you have a version conflict (WebApp A relies on 3rd
party JAR 1.0, WebApp B relies on 3rd party JAR 2.1) you have no chance with
the shared classloader or will have conflicts. Recommended is use of
WEB-INF/lib
Distribute your application (WebApp) with any JARs you need in WEB-INF/lib.

Regards
Boris

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to