tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Neven Cvetkovic <>
Subject Re: Separation of CATALINA_HOME and CATALINA_BASE
Date Mon, 03 Nov 2014 20:21:57 GMT

On Mon, Nov 3, 2014 at 2:38 PM, <> wrote:

> On the subject of "Newbie-friendly", I think Tomcat would be a whole lot
> more friendly if CATALINA_HOME and CATALINA_BASE were always totally
> separate with a minimum of overlap.
Why is that?

I would argue current setup is very simple and "newbie-friendly". Most
newbies are going to have a single-instance tomcat running, even developers
in their IDEs (Eclipse, NetBeans, IntelliJ, etc...) would probably start
with a single Tomcat instance.

You want your CATALINA_HOME = CATALINA_BASE in the "newbie" situation.
Actually you don't even want to advertise the difference to the "newbies".
You probably shouldn't even configure CATALINA_HOME/CATALINA_BASE
environment variables, but let the scripts infer from where you are running

Now, once one graduates pass the "newbie-friendly" - one can start looking
when CATALINA_HOME != CATALINA_BASE is useful. Here are some ideas, why you
would maybe want to separate out CATALINA_HOME and CATALINA_BASE:

a) when you want to make your Tomcat upgrades easier over time, so you just
upgrade your CATALINA_HOME each time and you keep your existing
CATALINA_BASE (instance configuration) directory.

b) multi-instance environment, when you have multiple Tomcat instances
running on the same machine, and you are "sick-and-tired" of copying entire
tomcat directory for each instance and do the upgrades for each instance

Other than that, I don't see another reason to have CATALINA_HOME and
CATALINA_BASE be any different.

> Although I used Tomcat quite a lot years ago I still consider myself a
> Tomcat Newbie, mostly because configuration always took days or weeks
> longer than is reasonable. Now I'm back to Tomcat after years of having it
> easy using GlassFish. The files might be different now but the grief with
> configuration is still the same.
> I've been through numerous configurations with various versions of Tomcat
> 7 and 8 the furthest I've got is getting a database connection to work. Now
> having created a minimal CATALINA_BASE I've jumped a few steps back and it
> won't start.

Exactly my point earlier Vince. You ignore setting up
CATALINA_HOME/CATALINA_BASE, you let the scripts infer that from where it
is being started. And then you just configure your datasource either at the
<GlobalNamingResources> level (e.g at conf/server.xml) or at the <Context>
level (e.g. at conf/Catalina/localhost/myapp.xml).

> I am sure many of the problems would evaporate if only there were built in
> and permanent clarity over the separation between CATALINA_HOME and
> Yes, I've read RUNNING.TXT and I'm left wondering why do I have a catalina
> class not found if all the tomcat jar files are in CATALINA_HOME/lib
> Using CATALINA_BASE:   "C:\tomcat8catalina_base"
> Using CATALINA_HOME:   "C:\tomcat809"
> Using CATALINA_TMPDIR: "C:\tomcat8catalina_base\temp"
> Using JRE_HOME:        "C:\jdk1.7.0_55"
>  "C:\tomcat809\bin\bootstrap.jar;C:\tomcat8catalina_base\bin\tomcat-juli.jar"
> Listening for transport dt_shmem at address: tomcat_shared_memory_id
> 03-Nov-2014 17:45:50.410 SEVERE [main]
> org.apache.tomcat.util.digester.Digester.startElement Begin event threw
> exception
>  java.lang.ClassNotFoundException:
> org.apache.catalina.startup.VersionLoggerListener
> All these experiments are done running Tomcat under NetBeans so perhaps
> part of my issue is with NetBeans. The CLASSPATH shown above is a bit on
> the short side, is it meant to be so short ?

If you are running Tomcat instance in IDE, why do you bother separating out
CATALINA_BASE and CATALINA_HOME? Default unzip and play setup work nicely
in Eclipse and IntelliJ. I have not played with NetBeans as much, but I am
sure it is easy out-of-box setup.

Hope that helps!


  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message