Craig R. McClanahan wrote:
> Tomcat 3.2 used CLASSPATH the way you are asking for.  It resulted in
> CLASSPATH problems being the second largest catecategory of user problems
> (behind configuring web connectors, but only barely).
> 
> 
> Tomcat 3.3 and 4.x ignore  CLASSPATH, and this category of user problems
> has basically vanished.  Sounds like a smart move to me (especially since
> that was my choice, and I've adamantly resisted the idea of regressing
> back ever since).
> 
> By the way, symlinks are the right answer to your dilemma (from common/lib
> to wherever the legacy JAR files are.
> 

There is one potential problem with using symlinks, they won't work with
the Java SecurityManager for setting a security policy.

Perhaps installing those jars in $JAVA_HOME/jre/lib/ext would work.
That would be common across all the platforms.

> Craig McClanahan
> 
> 
> On Wed, 11 Sep 2002, Herrick, Rick wrote:
> 
> 
>>Date: Wed, 11 Sep 2002 05:29:12 +0200
>>From: "Herrick, Rick" <[EMAIL PROTECTED]>
>>Reply-To: Tomcat Users List <[EMAIL PROTECTED]>
>>To: "'[EMAIL PROTECTED]'" <[EMAIL PROTECTED]>
>>Subject: Tomcat shared libraries
>>
>>I'm currently in the process of developing a web application with Tomcat as
>>the default reference platform.  Although we'll support running with BEA,
>>JRun, etc., our installer app will install and modify settings only if
>>you're installing for Tomcat.  I have to make a decision on how to proceed
>>with our installer and really need to understand this problem.
>>
>>Now the problem is this: Tomcat doesn't use libraries from anywhere but
>>within its scope.  That is, it ignores the system classpath in its default
>>configuration.  I've read the class loader how-to (which isn't really a
>>how-to, but whatever), and also worked with it for quite some time, so I
>>understand pretty well how it works.  Basically your classes and JARs need
>>to be placed somewhere within the context of Tomcat: WEB-INF\classes,
>>WEB-INF\lib, $CATALINA_HOME/common/classes,
>>$CATALINA_HOME/common/endorsed/*.jar, $CATALINA_HOME/common/lib/*.jar,
>>$CATALINA_HOME/shared/classes, and $CATALINA_HOME/shared/lib/*.jar.
>>
>>The problem is that this is a strictly web app-centric view of the world.
>>In fact, many of the libraries that we need to use from within our web app
>>are standard class libraries that other non-web applications need to use,
>>such as our main server product, our non-web client applications,
>>development tools, and so on.  This leaves me three choices:
>>
>>* Replicate the libraries in two places, one for non-web apps and one for
>>web apps (this solution, BTW, has to be cross-platform capable, so using
>>links is out).  This is less than desirable because of the maintenance
>>problem with controlling versions.
>>
>>* Place the primary libraries within the Tomcat context and refer the other
>>applications to that location.  This doesn't work both for legacy and
>>upgrade reasons (i.e. if you've already got a server installed, it expects
>>to find its support libraries in a particular place and not have them moved
>>over to another location) and because it's nonsensical for a non-web-based
>>application to refer to an app server's repository.
>>
>>* Mung around with the batch files and add the required directories to the
>>classpath for Tomcat.
>>
>>I do the third.  This works just dandy: my required libraries remain in
>>their central product-centric location, everyone can find what they need,
>>and there's only one version of the libraries around (well, it's a
>>development machine, so of course there's about 10 versions of every library
>>around, but *I* know where they are :^).
>>
>>I browsed through the archives of this list and found the following quote:
>>
>>From
>>http://www.mail-archive.com/tomcat-user@jakarta.apache.org/msg64144.html:
>>"How do I add an existing jar to a servlet's classpath, if that jar doesn't
>>want to live under WEB-INF/lib?  (I ultimately asked this here, and got a
>>solid "you can't" response, so I'm satisfied.  However, I've seen this asked
>>here often, so it'd make a great FAQ submission."--Paul Brinkley
>>
>>My question is, why is this so?  Why is it that "you can't"?  Since I know
>>you can in practice (by setting the CLASSPATH sometime after
>>setclasspath.bat nukes the system classpath or by removing setclasspath.bat
>>altogether), the prohibition seems arbitrary.  Is there a security issue
>>with Tomcat doing class loading outside of the Tomcat context?  It seems to
>>me that it's mainly due to a provincial view of a web app as a
>>self-contained entity, but in reality most of the people I know writing web
>>apps nowadays are running into *exactly* this sort of issue again and again.
>>
>>
>>So to make our installer work, at this point I'm actually moving the
>>existing setclasspath.bat file to some tmp name and creating a new one that
>>sets the CLASSPATH to what we need.  Is there any problem with this other
>>than it's not cool to monkey with another product's settings?
>>
>>Thanks for getting through all this!  Any help or explanation is greatly
>>appreciated.
>>
>>Rick Herrick, senior software engineer
>>CIS/TM
>>(303) 362-4892
>>
>>
> 
> 
> 
> --
> To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>




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

Reply via email to