Re: Add Context Path, Tomcat 5.5.7
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
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).