Add Context Path, Tomcat 5.5.7

2005-04-08 Thread Scott Purcell
Hello,
 
I am following the information here to add DBCP to my application.
http://jakarta.apache.org/tomcat/tomcat-5.5-doc/jndi-datasource-examples-howto.html
 
I am reading to add the Context path=/DBTest ... from the above docs. The 
instructions say to .
 
Configure the JNDI DataSource in Tomcat by adding a declaration for your 
resource to $CATALINA_HOME/conf/server.xml.

Add this in between the /Context tag of the examples context and the /Host 
tag closing the localhost definition.

 

So cool, I opened up the server.xml, but do not see any existing context or 
host tags in it. Here is my server.xml file. Does anyone know where I put the 
Context for the DBCP stuff? Thanks,

'!-- Example Server Configuration File --
!-- Note that component elements are nested corresponding to their
 parent-child relationships with each other --
 
!-- A Server is a singleton element that represents the entire JVM,
 which may contain one or more Service instances.  The Server
 listens for a shutdown command on the indicated port.
 
 Note:  A Server is not itself a Container, so you may not
 define subcomponents such as Valves or Loggers at this level.
 --
 
Server port=8005 shutdown=SHUTDOWN
 
  !-- Comment these entries out to disable JMX MBeans support used for the 
   administration web application --
  Listener className=org.apache.catalina.mbeans.ServerLifecycleListener /
  Listener 
className=org.apache.catalina.mbeans.GlobalResourcesLifecycleListener /
  Listener 
className=org.apache.catalina.storeconfig.StoreConfigLifecycleListener/
 
  !-- Global JNDI resources --
  GlobalNamingResources
 
!-- Test entry for demonstration purposes --
Environment name=simpleValue type=java.lang.Integer value=30/
 
!-- Editable user database that can also be used by
 UserDatabaseRealm to authenticate users --
Resource name=UserDatabase auth=Container
  type=org.apache.catalina.UserDatabase
   description=User database that can be updated and saved
   factory=org.apache.catalina.users.MemoryUserDatabaseFactory
  pathname=conf/tomcat-users.xml /
 
  /GlobalNamingResources
 
  !-- A Service is a collection of one or more Connectors that share
   a single Container (and therefore the web applications visible
   within that Container).  Normally, that Container is an Engine,
   but this is not required.
 
   Note:  A Service is not itself a Container, so you may not
   define subcomponents such as Valves or Loggers at this level.
   --
 
  !-- Define the Tomcat Stand-Alone Service --
  Service name=Catalina
 
!-- A Connector represents an endpoint by which requests are received
 and responses are returned.  Each Connector passes requests on to the
 associated Container (normally an Engine) for processing.
 
 By default, a non-SSL HTTP/1.1 Connector is established on port 8080.
 You can also enable an SSL HTTP/1.1 Connector on port 8443 by
 following the instructions below and uncommenting the second Connector
 entry.  SSL support requires the following steps (see the SSL Config
 HOWTO in the Tomcat 5 documentation bundle for more detailed
 instructions):
 * If your JDK version 1.3 or prior, download and install JSSE 1.0.2 or
   later, and put the JAR files into $JAVA_HOME/jre/lib/ext.
 * Execute:
 %JAVA_HOME%\bin\keytool -genkey -alias tomcat -keyalg RSA (Windows)
 $JAVA_HOME/bin/keytool -genkey -alias tomcat -keyalg RSA  (Unix)
   with a password value of changeit for both the certificate and
   the keystore itself.
 
 By default, DNS lookups are enabled when a web application calls
 request.getRemoteHost().  This can have an adverse impact on
 performance, so you can disable it by setting the
 enableLookups attribute to false.  When DNS lookups are disabled,
 request.getRemoteHost() will return the String version of the
 IP address of the remote client.
--
 
!-- Define a non-SSL HTTP/1.1 Connector on port 8080 --
Connector
port=80   maxThreads=150 minSpareThreads=25 
maxSpareThreads=75
   enableLookups=false redirectPort=8443 acceptCount=100
   connectionTimeout=2 disableUploadTimeout=true /
!-- Note : To disable connection timeouts, set connectionTimeout value
 to 0 --
 
 !-- Note : To use gzip compression you could set the following properties :
 
  compression=on 
  compressionMinSize=2048 
  noCompressionUserAgents=gozilla, traviata 
  compressableMimeType=text/html,text/xml
 --
 
!-- Define a SSL HTTP/1.1 Connector on port 8443 --
!--
Connector port=8443 
   maxThreads=150 minSpareThreads=25 maxSpareThreads=75
   enableLookups=false disableUploadTimeout=true
   acceptCount=100 scheme=https secure=true
   

Re: Add Context Path, Tomcat 5.5.7

2005-04-08 Thread David Smith
Hi.
Take a look at this for where to put Context elements:
http://jakarta.apache.org/tomcat/tomcat-5.5-doc/config/context.html
This is new with Tomcat 5.0 and is continued in Tomcat 5.5
--David
Scott Purcell wrote:
Hello,
I am following the information here to add DBCP to my application.
http://jakarta.apache.org/tomcat/tomcat-5.5-doc/jndi-datasource-examples-howto.html
I am reading to add the Context path=/DBTest ... from the above docs. The 
instructions say to .
Configure the JNDI DataSource in Tomcat by adding a declaration for your 
resource to $CATALINA_HOME/conf/server.xml.
Add this in between the /Context tag of the examples context and the /Host 
tag closing the localhost definition.

So cool, I opened up the server.xml, but do not see any existing context or 
host tags in it. Here is my server.xml file. Does anyone know where I put the 
Context for the DBCP stuff? Thanks,
'!-- Example Server Configuration File --
!-- Note that component elements are nested corresponding to their
parent-child relationships with each other --
!-- A Server is a singleton element that represents the entire JVM,
which may contain one or more Service instances.  The Server
listens for a shutdown command on the indicated port.
Note:  A Server is not itself a Container, so you may not
define subcomponents such as Valves or Loggers at this level.
--
Server port=8005 shutdown=SHUTDOWN
 !-- Comment these entries out to disable JMX MBeans support used for the 
  administration web application --
 Listener className=org.apache.catalina.mbeans.ServerLifecycleListener /
 Listener className=org.apache.catalina.mbeans.GlobalResourcesLifecycleListener /
 Listener className=org.apache.catalina.storeconfig.StoreConfigLifecycleListener/

 !-- Global JNDI resources --
 GlobalNamingResources
   !-- Test entry for demonstration purposes --
   Environment name=simpleValue type=java.lang.Integer value=30/
   !-- Editable user database that can also be used by
UserDatabaseRealm to authenticate users --
   Resource name=UserDatabase auth=Container
 type=org.apache.catalina.UserDatabase
  description=User database that can be updated and saved
  factory=org.apache.catalina.users.MemoryUserDatabaseFactory
 pathname=conf/tomcat-users.xml /
 /GlobalNamingResources
 !-- A Service is a collection of one or more Connectors that share
  a single Container (and therefore the web applications visible
  within that Container).  Normally, that Container is an Engine,
  but this is not required.
  Note:  A Service is not itself a Container, so you may not
  define subcomponents such as Valves or Loggers at this level.
  --
 !-- Define the Tomcat Stand-Alone Service --
 Service name=Catalina
   !-- A Connector represents an endpoint by which requests are received
and responses are returned.  Each Connector passes requests on to the
associated Container (normally an Engine) for processing.
By default, a non-SSL HTTP/1.1 Connector is established on port 8080.
You can also enable an SSL HTTP/1.1 Connector on port 8443 by
following the instructions below and uncommenting the second Connector
entry.  SSL support requires the following steps (see the SSL Config
HOWTO in the Tomcat 5 documentation bundle for more detailed
instructions):
* If your JDK version 1.3 or prior, download and install JSSE 1.0.2 or
  later, and put the JAR files into $JAVA_HOME/jre/lib/ext.
* Execute:
%JAVA_HOME%\bin\keytool -genkey -alias tomcat -keyalg RSA (Windows)
$JAVA_HOME/bin/keytool -genkey -alias tomcat -keyalg RSA  (Unix)
  with a password value of changeit for both the certificate and
  the keystore itself.
By default, DNS lookups are enabled when a web application calls
request.getRemoteHost().  This can have an adverse impact on
performance, so you can disable it by setting the
enableLookups attribute to false.  When DNS lookups are disabled,
request.getRemoteHost() will return the String version of the
IP address of the remote client.
   --
   !-- Define a non-SSL HTTP/1.1 Connector on port 8080 --
   Connector
port=80   maxThreads=150 minSpareThreads=25 
maxSpareThreads=75
  enableLookups=false redirectPort=8443 acceptCount=100
  connectionTimeout=2 disableUploadTimeout=true /
   !-- Note : To disable connection timeouts, set connectionTimeout value
to 0 --
!-- Note : To use gzip compression you could set the following properties :
 compression=on 
 compressionMinSize=2048 
 noCompressionUserAgents=gozilla, traviata 
 compressableMimeType=text/html,text/xml
--

   !-- Define a SSL HTTP/1.1 Connector on port 8443 --
   !--
   Connector port=8443 
  maxThreads=150 minSpareThreads=25 maxSpareThreads=75
  enableLookups=false 

Re: Add Context Path, Tomcat 5.5.7

2005-04-08 Thread P T
Scott,

I feel your pain -- I just finished sorting out that whole thing
myself. One thing I'd definitely recommend doing is installing the
admin tool for tomcat 5 and using it to change something trivial in
your server.xml file. When it gets done making the change it strips
out all the comments as a side effect and makes the file *much*
cleaner and, in my opinion, more readable. As for your question:
if the resource is to be used for multiple applications, you could put
it in the server.xml... if not (and I'm going to presume that's the
case for you -- let me know if not) then you're much better off using
your application-specific WEB-INF\web.xml and META-INF\context.xml
files like so:


your application docbase\META-INF\context.xml would look something like:
Context path=/Foo 
 docBase=C:/Foo 
 debug=1 reloadable=true
  Resource
  auth=Container
  name=jdbc/aNameForYourDBresource
  type=javax.sql.DataSource
  password=Foo
  driverClassName=oracle.jdbc.driver.OracleDriver 
  maxIdle=3
  maxWait=5000
  username=Foo
  url=jdbc:oracle:thin:@Foo:1521:Foo
  maxActive=15/
  WatchedResourceWEB-INF/web.xml/WatchedResource
  WatchedResourceMETA-INF/context.xml/WatchedResource
/Context

and your your application docbaseWEB-INF\web.xml would then
reference the resource defined in the context above (the res-ref-name
should match the resource name)

?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

   display-nameYour app's name/display-name
  description
  Slices, dices and makes fresh canned spam!
   /description

   resource-ref
  descriptionDescription of Datasource/description
  res-ref-namejdbc/aNameForYourDBresource/res-ref-name
  res-typejavax.sql.DataSource/res-type
  res-authContainer/res-auth
   /resource-ref
/web-app

It's helpful to think of the individual application context.xml files
being 'included' as context entries in the server.xml file (almost
like an @include, except implicit).

Hope that helps! Let me know if I can clarify anything.

Cheers,
Patrick Thomas

(PS - remember to install the jakarta commons and pooling jars
mentioned in the dbcp documentation.)

On Apr 8, 2005 11:13 AM, David Smith [EMAIL PROTECTED] wrote:
 Hi.
 
 Take a look at this for where to put Context elements:
 http://jakarta.apache.org/tomcat/tomcat-5.5-doc/config/context.html
 
 This is new with Tomcat 5.0 and is continued in Tomcat 5.5
 
 --David
 
 Scott Purcell wrote:
 
 Hello,
 
 I am following the information here to add DBCP to my application.
 http://jakarta.apache.org/tomcat/tomcat-5.5-doc/jndi-datasource-examples-howto.html
 
 I am reading to add the Context path=/DBTest ... from the above docs. The 
 instructions say to .
 
 Configure the JNDI DataSource in Tomcat by adding a declaration for your 
 resource to $CATALINA_HOME/conf/server.xml.
 
 Add this in between the /Context tag of the examples context and the 
 /Host tag closing the localhost definition.
 
 
 
 So cool, I opened up the server.xml, but do not see any existing context or 
 host tags in it. Here is my server.xml file. Does anyone know where I put 
 the Context for the DBCP stuff? Thanks,
 
 '!-- Example Server Configuration File --
 !-- Note that component elements are nested corresponding to their
  parent-child relationships with each other --
 
 !-- A Server is a singleton element that represents the entire JVM,
  which may contain one or more Service instances.  The Server
  listens for a shutdown command on the indicated port.
 
  Note:  A Server is not itself a Container, so you may not
  define subcomponents such as Valves or Loggers at this level.
  --
 
 Server port=8005 shutdown=SHUTDOWN
 
   !-- Comment these entries out to disable JMX MBeans support used for the
administration web application --
   Listener className=org.apache.catalina.mbeans.ServerLifecycleListener /
   Listener 
  className=org.apache.catalina.mbeans.GlobalResourcesLifecycleListener /
   Listener 
  className=org.apache.catalina.storeconfig.StoreConfigLifecycleListener/
 
   !-- Global JNDI resources --
   GlobalNamingResources
 
 !-- Test entry for demonstration purposes --
 Environment name=simpleValue type=java.lang.Integer value=30/
 
 !-- Editable user database that can also be used by
  UserDatabaseRealm to authenticate users --
 Resource name=UserDatabase auth=Container
   type=org.apache.catalina.UserDatabase
description=User database that can be updated and saved
factory=org.apache.catalina.users.MemoryUserDatabaseFactory
   pathname=conf/tomcat-users.xml /
 
   /GlobalNamingResources
 
   !-- A Service is a collection of one or more Connectors that share
a single Container (and therefore the web applications visible
within that Container).