You can add setenv.bat/sh to you tomcat bin direcotry.  catalina.bat/sh will
do the following:

rem Get standard environment variables
if exist "%CATALINA_HOME%\bin\setenv.bat" call
"%CATALINA_HOME%\bin\setenv.bat"

# Get standard environment variables
PRGDIR=`dirname "$PRG"`
CATALINA_HOME=`cd "$PRGDIR/.." ; pwd`
if [ -r "$CATALINA_HOME"/bin/setenv.sh ]; then
  . "$CATALINA_HOME"/bin/setenv.sh
fi

So this is one way of setting up the classpath.

Dmitry

-----Original Message-----
From: Thomas Davis [mailto:[EMAIL PROTECTED]
Sent: Thursday, July 17, 2003 10:41 AM
To: [EMAIL PROTECTED]
Subject: Classpath Conundrum (2nd try)


[I apologize is this message is a dupe.  I had trouble sending messages
to this group from a hotmail account.]

I have been tasked with trying to get a legacy Java Servlet based
application running under Tomcat 4.1.24 -- The application currently
runs on JRun 2.3.3

On of the requirements imposed upon me is that I can't disturb the
existing directory structure.  I can't rename or move any directories
(or their contents).

Our third-party Java classes are in:

    c:\myapp\foreign

Our application and development Java classes are in:

    c:\myapp\native

The root directory of the web server is:

    c:\myapp\native\web

I created the following Context in server.xml:

    <Context path="/tomcat" docBase="c:/myapp/native/web" debug="0"/>

Then I created the servlet deployment file:

    c:\myapp\native\web\WEB-INF\web.xml
    
The contents of said file:

    <?xml version="1.0" encoding="ISO-8859-1"?>

    <!DOCTYPE web-app
        PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
        "http://java.sun.com/dtd/web-app_2_3.dtd";>

    <web-app>

        <servlet>
            <servlet-name>myapp</servlet-name>
            <servlet-class>com.myapp.servlet.BootStrap</servlet-class>
        </servlet>

        <servlet-mapping>
            <servlet-name>myapp</servlet-name> 
            <url-pattern>/myapp</url-pattern> 
        </servlet-mapping>

    </web-app>

So now I'm all set to go, except that I'm going to (and did) get a
"class not found" error because there is no "/classes" directory under
"WEB-INF" and as mentioned above I can't copy the classes from
"/foreign" and "/native" there.  

I can't create a symbolic link from "/classes" to "/native" since that
would be recursive, and it wouldn't include "/foreign" which is also
required.

The "/native" and "/foreign" directories are in the CLASSPATH
environment variable, but as documented in "Class Loader HOW-TO" that
variable is ignored by the class loaders.

It would seem to me that the easiest and most straight-forward solution
is to get the class loaders to honor the CLASSPATH environment
variable.  I tried to accomplish this by hacking the start-up scripts,
but could not get it to work.

Could somebody please help me out here?  What's the best way to get the
class loader to look in "/native" and "/foreign"?  Or is there a better
solution (other than shuffling the directories around, which I can't
do).  Thanks a million!


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



NOTICE:  This communication may contain proprietary or other confidential
business information of Orcom Solutions, Inc.  If you are not the intended
recipient or believe that you may have received this communication in error,
please reply to the sender indicating that fact and delete the copy you
received.  In addition, you should not print, copy, retransmit, disseminate,
or otherwise use the information.  Thank you.  


Reply via email to