struts-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Craig R. McClanahan" <>
Subject Re: Why does including struts.jar to CLASSPATH makes problem?
Date Wed, 04 Oct 2000 16:00:11 GMT
Yun Sang Jung wrote:

> [Image]
> Hi.. Struts user.
> Until now, I have used struts & tomcat 3.2 beta 5 for building my application.
> Today, I placed struts.jar file to CLASSPATH directory and removed struts.jar file
> from $TOMCAT_HOME/webapps/myapps/WEB-INF/lib directory.
> Then I met resource missing message. (org.apache.struts.????.MESSAGE)
> Before moving struts.jar file, there was no problem!
> My Question is as follows:
> [Q1]
> What is the difference placing struts.jar into CLASSPATH directory between
> $TOMCAT_HOME/webapps/myapps/WEB-INF/lib directory?
> Isn't it the same configuration?
No, it is actually not the same.

The JAR files in the  $TOMCAT_HOME/lib directory end up on the system
classpath, which is shared across all webapps.  The WEB-INF/lib
directory contains classes that are only visible from within that
web-app.  And that is what causes the difficulty.

Consider the Struts example application, for example.  It uses form
beans and other classes from the WEB-INF/classes and WEB-INF/lib
directories.  But, if you load Struts itself from the system classpath,
these classes are not visible to Struts itself -- Struts looks only in
the system classpath because that is where it was loaded.

Thus, the rule is you *must* put the "struts.jar" file in your
WEB-INF/lib directory to work on Tomcat 3.2, and most other current
generation servlet containers.

> [Q2]
> Should struts.jar file be loaded application specific classloader?
> If yes, why?
Yes, for the reasons described above.

> Regards,
> Jung

Craig McClanahan

See you at ApacheCon Europe <>!
Session VS01 (23-Oct 13h00-17h00):  Sun Technical Briefing
Session T06  (24-Oct 14h00-15h00):  Migrating Apache JServ
                                    Applications to Tomcat

View raw message