tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Brian Cook <bc...@printtime.com>
Subject Re: jndi question
Date Thu, 25 Aug 2005 18:24:08 GMT

It has probablly already been stated before somewhere in this thread but 
what versions of Tomcat and JDK are you using?


Sean Rowe wrote:
> yes, there is a file in the /conf/Catalina/localhost directory for my app
> 
> Brian Cook wrote:
> 
>> Sean,
>>
>> One thing that stands out in your message is that the conext.xml file 
>> was placed in the META-INF folder.  Is it also in <<Tomcat 
>> Folder>>/conf/Catalina/localhost/ as the module name?  i.e. If the 
>> context path name of your webapp is "/seansApp" the context.xml file 
>> should appear in this folder as seansApp.xml.
>>
>>
>> The context.xml file is stored in META-INF during development but 
>> needs to be placed in <<Tomcat Folder>>/conf/Catalina/localhost/ 
>> folder for deployment with the file name of the context path.
>>
>>
>>
>>
>> Sean Rowe wrote:
>>
>>> I have tried again using the method described in the url brian gave.  
>>> Here is the stack exception I'm receiving:
>>>
>>> *type* Exception report
>>>
>>> *message*
>>>
>>> *description* _The server encountered an internal error () that 
>>> prevented it from fulfilling this request._
>>>
>>> *exception*
>>>
>>> javax.servlet.ServletException: Name java:comp is not bound in this 
>>> Context
>>>     
>>> org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:848) 
>>>
>>>     
>>> org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:781) 
>>>
>>>     org.apache.jsp.test_jsp._jspService(org.apache.jsp.test_jsp:69)
>>>     org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
>>>     javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
>>>     
>>> org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322) 
>>>
>>>     
>>> org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
>>>     org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
>>>     javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
>>>
>>> *root cause*
>>>
>>> javax.naming.NameNotFoundException: Name java:comp is not bound in 
>>> this Context
>>>     org.apache.naming.NamingContext.lookup(NamingContext.java:769)
>>>     org.apache.naming.NamingContext.lookup(NamingContext.java:152)
>>>     javax.naming.InitialContext.lookup(InitialContext.java:351)
>>>     com.transcriptionportal.utils.DBManager.init(DBManager.java:25)
>>>     org.apache.jsp.test_jsp._jspService(org.apache.jsp.test_jsp:53)
>>>     org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
>>>     javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
>>>     
>>> org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322) 
>>>
>>>     
>>> org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
>>>     org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
>>>     javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
>>>
>>>
>>> I have enclosed my server.xml, web.xml, context.xml (that i placed in 
>>> my web/META-INF folder), and the class I'm using to make the 
>>> connection.  Thanks again to everyone who has helped me so far.
>>>
>>> sean
>>>
>>> Allistair Crossley wrote:
>>>
>>>> Hi,
>>>>
>>>> He isn't using that method of configuration, that's just 1 option of 
>>>> 3. He is nesting his Context definition within the server.xml Host 
>>>> element. Although this is now scorned, it's still valid. The 2 other 
>>>> methods are contextname.xml as you say, and also 
>>>> META-INF/context.xml within the webapp itself. Allistair.
>>>>
>>>>  
>>>>
>>>>> -----Original Message-----
>>>>> From: Brian Cook [mailto:bcook@printtime.com]
>>>>> Sent: 23 August 2005 17:23
>>>>> To: Tomcat Users List
>>>>> Subject: Re: jndi question
>>>>>
>>>>>
>>>>>
>>>>> Ok but do you have the resource defined in context.xml?  If you go 
>>>>> to <<Tomcat Dir>>/conf/Cataliana/localhost/ do you see a file with 
>>>>> the name of the module ending with .xml?  If so is the resource 
>>>>> defined in that file?  If not you need to add it.
>>>>>
>>>>> From the description it sounds like nothing in this set up has been 
>>>>> done as was show on the example page.
>>>>>
>>>>> http://jakarta.apache.org/tomcat/tomcat-5.5-doc/jndi-resources
>>>>> -howto.html
>>>>>
>>>>> If you use the code block that is shown, define that resource in 
>>>>> web.xml and context.xml it will work.  But multiple postings latter 
>>>>> it still sounds like the JNDI resource is not defined in 
>>>>> context.xml and the code calling the JNDI resource differs greatly 
>>>>> from the example provided.
>>>>>
>>>>>
>>>>> Sean Rowe wrote:
>>>>>  
>>>>>
>>>>>> The first post on this included the server.xml, and further     
>>>>>
>>>>>
>>>>>
>>>>> down in the 
>>>>>
>>>>>> page is the relevant part of web.xml ( i just double     
>>>>>
>>>>>
>>>>>
>>>>> checked that ).  as 
>>>>>
>>>>>> for context.xml, i have listed it in my webapp.xml file, as well 
>>>>>> as server.xml as all other examples have suggested.  i then     
>>>>>
>>>>>
>>>>>
>>>>> tried it in the 
>>>>>
>>>>>> admin module, where it then put it in server.xml for me.      
>>>>>
>>>>>
>>>>>
>>>>> i'm willing to 
>>>>>
>>>>>> try anything at this point, though, if you have any suggestions.
>>>>>>
>>>>>> as for my post not being jndi specific, i applogize if     
>>>>>
>>>>>
>>>>>
>>>>> that's the case.  
>>>>>
>>>>>> i'm not really familiar with jndi....but when I did a search for 
>>>>>> 'connection pooling', jndi seemed to be what everyone     
>>>>>
>>>>>
>>>>>
>>>>> suggested i use.  
>>>>>
>>>>>> what i want to do, if it's not clear, is to create a     
>>>>>
>>>>>
>>>>>
>>>>> connection pool to 
>>>>>
>>>>>> my MySql database.
>>>>>> thanks,
>>>>>> sean
>>>>>>
>>>>>> Brian Cook wrote:
>>>>>>
>>>>>>   
>>>>>>
>>>>>>> Actually the files I listed are NOT in the first post.  It       
>>>>>>
>>>>>>
>>>>>
>>>>> shows the 
>>>>>
>>>>>>> server.xml and the code calling it but does not show web.xml or 
>>>>>>> context.xml.
>>>>>>>
>>>>>>> The error you are getting just means that that the JNDI       
>>>>>>
>>>>>>
>>>>>
>>>>> resource being 
>>>>>
>>>>>>> called in the code is not defined in both web.xml and context.xml.
>>>>>>>
>>>>>>> In looking at the code snip it in the first post I am not       
>>>>>>
>>>>>>
>>>>>
>>>>> following 
>>>>>
>>>>>>> what you are trying to do.  The post is for a JNDI       
>>>>>>
>>>>>>
>>>>>
>>>>> question but in the 
>>>>>
>>>>>>> code it looks like you are calling the DB URL directly.  The 
>>>>>>> whole point of JDNI being to get specific URL, and configuration 
>>>>>>> info outside of the code base.  I am not following what it is you 
>>>>>>> are trying to do here.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Sean Rowe wrote:
>>>>>>>
>>>>>>>     
>>>>>>>
>>>>>>>> Brian, thank you for replying.  I was afraid my topic was         
>>>>>>>
>>>>>>>
>>>>>
>>>>> dead.  If 
>>>>>
>>>>>>>> you could look at my first post, I listed all the files         
>>>>>>>
>>>>>>>
>>>>>
>>>>> that you have 
>>>>>
>>>>>>>> suggested I take a look at.  I have done everything you have 
>>>>>>>> suggested, but am still getting errors.  The error I am         
>>>>>>>
>>>>>>>
>>>>>
>>>>> getting now is
>>>>>  
>>>>>
>>>>>>>> javax.naming.NameNotFoundException: Name java:comp is not         
>>>>>>>
>>>>>>>
>>>>>
>>>>> bound in 
>>>>>
>>>>>>>> this Context
>>>>>>>>
>>>>>>>> I can't find anything on the net or in any books I've         
>>>>>>>
>>>>>>>
>>>>>
>>>>> looked at that 
>>>>>
>>>>>>>> explains this.  As far as I can tell, java:comp should just be 
>>>>>>>> there.  Any ideas?  Thanks again.
>>>>>>>>
>>>>>>>> Sean
>>>>>>>>
>>>>>>>> Brian Cook wrote:
>>>>>>>>
>>>>>>>>       
>>>>>>>>
>>>>>>>>> Yes you can use JNDI with out using JSTL.  But the only way to 
>>>>>>>>> configure it is to define the JNDI resources in the web.xml and 
>>>>>>>>> context.xml files.    Technically you should be able to use the 
>>>>>>>>> globally defined JNDI resources in server.xml, and I have seen 
>>>>>>>>> configuration set ups doing it when googling.  But could           
>>>>>>>>
>>>>>>>>
>>>>>
>>>>> never get 
>>>>>
>>>>>>>>> them to work.
>>>>>>>>>
>>>>>>>>> This highlights another area of seemingly unneeded           
>>>>>>>>
>>>>>>>>
>>>>>
>>>>> complication in 
>>>>>
>>>>>>>>> Java/Unix development.  Using JNDI for data sources which was 
>>>>>>>>> supposed to help you save time requires that you           
>>>>>>>>
>>>>>>>>
>>>>>
>>>>> redundantly define 
>>>>>
>>>>>>>>> the JNDI resource in at lest 2 if not 3 places.
>>>>>>>>>
>>>>>>>>> The admin tool which was also supposed to help save time           
>>>>>>>>
>>>>>>>>
>>>>>
>>>>> defines the 
>>>>>
>>>>>>>>> JNDI resources in server.xml which does not really seem           
>>>>>>>>
>>>>>>>>
>>>>>
>>>>> to be all 
>>>>>
>>>>>>>>> that helpful.  I am sure there is likely a reason for           
>>>>>>>>
>>>>>>>>
>>>>>
>>>>> this but I am 
>>>>>
>>>>>>>>> ignorant of it.  The admin tool is also supposed to let           
>>>>>>>>
>>>>>>>>
>>>>>
>>>>> you define 
>>>>>
>>>>>>>>> JNDI resources  per context but it errors out when ever           
>>>>>>>>
>>>>>>>>
>>>>>
>>>>> I have tried 
>>>>>
>>>>>>>>> it.
>>>>>>>>>
>>>>>>>>> My experience with the Tomcat Admin and Manager tools is           
>>>>>>>>
>>>>>>>>
>>>>>
>>>>> that they 
>>>>>
>>>>>>>>> are worthless.  Of the few steps they try to help with           
>>>>>>>>
>>>>>>>>
>>>>>
>>>>> more often 
>>>>>
>>>>>>>>> that not they just return errors when you need to use           
>>>>>>>>
>>>>>>>>
>>>>>
>>>>> it.  I removed 
>>>>>
>>>>>>>>> them both and have gone back to doing set ups manually           
>>>>>>>>
>>>>>>>>
>>>>>
>>>>> and there has 
>>>>>
>>>>>>>>> not been much of a time difference doing it this way.
>>>>>>>>>
>>>>>>>>> Any way for JNDI to work you will have to add the           
>>>>>>>>
>>>>>>>>
>>>>>
>>>>> definition for it 
>>>>>
>>>>>>>>> in both web.xml and context.xml in the <<Tomcat 
>>>>>>>>> Folder>>/conf/Catalina/localhost/ folder.  This seems counter 
>>>>>>>>> productive since it makes your app less portable having the 
>>>>>>>>> data base configuration details inside the context and 
>>>>>>>>> by           
>>>>>>>>
>>>>>>>>
>>>>>
>>>>> extent the WAR 
>>>>>
>>>>>>>>> file but it is what you have to do to get it to work right now.
>>>>>>>>>
>>>>>>>>> I feel your pain I know it is frustrating spending hours           
>>>>>>>>
>>>>>>>>
>>>>>
>>>>> debugging 
>>>>>
>>>>>>>>> just the DB connection but todate that is the reality of           
>>>>>>>>
>>>>>>>>
>>>>>
>>>>> Java web 
>>>>>
>>>>>>>>> app development.  It is why I fear we will all be .Net           
>>>>>>>>
>>>>>>>>
>>>>>
>>>>> developers 
>>>>>
>>>>>>>>> some day.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Example :
>>>>>>>>>
>>>>>>>>>           
>>>>>>>>
>>>>>>>>
>>>>>
>>>>> http://jakarta.apache.org/tomcat/tomcat-5.5-doc/jndi-resources
>>>>> -howto.html 
>>>>>
>>>>>>>>> <CODE>
>>>>>>>>>
>>>>>>>>> Context initCtx = new InitialContext();
>>>>>>>>> Context envCtx = (Context) initCtx.lookup("java:comp/env");
>>>>>>>>> DataSource ds = (DataSource)
>>>>>>>>>  envCtx.lookup("jdbc/EmployeeDB");
>>>>>>>>>
>>>>>>>>> Connection conn = ds.getConnection();
>>>>>>>>> ... use this connection to access the database ...
>>>>>>>>> conn.close();
>>>>>>>>>
>>>>>>>>> </CODE>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> <WEB.XML>
>>>>>>>>>
>>>>>>>>> <resource-ref>
>>>>>>>>>  <description>
>>>>>>>>>    Resource reference to a factory for java.sql.Connection
>>>>>>>>>    instances that may be used for talking to a particular
>>>>>>>>>    database that is configured in the server.xml file.
>>>>>>>>>  </description>
>>>>>>>>>  <res-ref-name>
>>>>>>>>>    jdbc/EmployeeDB
>>>>>>>>>  </res-ref-name>
>>>>>>>>>  <res-type>
>>>>>>>>>    javax.sql.DataSource
>>>>>>>>>  </res-type>
>>>>>>>>>  <res-auth>
>>>>>>>>>    Container
>>>>>>>>>  </res-auth>
>>>>>>>>> </resource-ref>
>>>>>>>>>
>>>>>>>>> </WEB.XML>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> <CONTEXT FILE>
>>>>>>>>>
>>>>>>>>> <Context>
>>>>>>>>>
>>>>>>>>>  <Resource     name="jdbc/EmployeeDB"
>>>>>>>>>        auth="Container"
>>>>>>>>>                type="javax.sql.DataSource"
>>>>>>>>>        username="dbusername"
>>>>>>>>>        password="dbpassword"
>>>>>>>>>                driverClassName="org.hsql.jdbcDriver"            
>>>>>>>>> > >>>> url="jdbc:HypersonicSQL:database"
>>>>>>>>>        maxActive="8"
>>>>>>>>>        maxIdle="4"/>
>>>>>>>>>
>>>>>>>>> </Context>
>>>>>>>>>
>>>>>>>>> </CONTEXT FILE>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Sean Rowe wrote:
>>>>>>>>>
>>>>>>>>>         
>>>>>>>>>
>>>>>>>>>> Dirk, I'm sorry I didn't see the difference on the page 
>>>>>>>>>>             
>>>>>>>>>
>>>>>>>>>
>>>>>
>>>>> you sent me 
>>>>>
>>>>>>>>>> to.  However, if there is a way I can do this without             
>>>>>>>>>
>>>>>>>>>
>>>>>
>>>>> having to use 
>>>>>
>>>>>>>>>> jstl, I would really like to know.  I was hoping to put 
>>>>>>>>>>             
>>>>>>>>>
>>>>>>>>>
>>>>>
>>>>> the code in 
>>>>>
>>>>>>>>>> a class somewhere that my servlets could use.
>>>>>>>>>>
>>>>>>>>>> thanks,
>>>>>>>>>> sean
>>>>>>>>>>
>>>>>>>>>> Dirk Weigenand wrote:
>>>>>>>>>>
>>>>>>>>>>           
>>>>>>>>>>
>>>>>>>>>>> Sean,
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>             
>>>>>>>>>>>
>>>>>>>>>>>> --- Urspr√ľngliche Nachricht ---
>>>>>>>>>>>> Von: Sean Rowe <ichabooka@gmail.com>
>>>>>>>>>>>> An: Tomcat Users List <tomcat-user@jakarta.apache.org>
>>>>>>>>>>>> Betreff: Re: jndi question
>>>>>>>>>>>> Datum: Mon, 22 Aug 2005 09:24:10 -0500
>>>>>>>>>>>>
>>>>>>>>>>>> Thanks for responding Dirk.  I've practically memorized the 
>>>>>>>>>>>> documentation on the link you sent:
>>>>>>>>>>>>
>>>>>>>>>>>> // Obtain our environment naming context
>>>>>>>>>>>> Context initCtx = new InitialContext();
>>>>>>>>>>>> Context envCtx = (Context) initCtx.lookup("java:comp/env");
>>>>>>>>>>>>
>>>>>>>>>>>> // Look up our data source
>>>>>>>>>>>> DataSource ds = (DataSource)
>>>>>>>>>>>> envCtx.lookup("jdbc/EmployeeDB");
>>>>>>>>>>>>
>>>>>>>>>>>> // Allocate and use a connection from the pool
>>>>>>>>>>>> Connection conn = ds.getConnection();
>>>>>>>>>>>> ... use this connection to access the database ...
>>>>>>>>>>>> conn.close();
>>>>>>>>>>>>
>>>>>>>>>>>> Whenever I try this, here's what I get (which led me 
>>>>>>>>>>>>                 
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>
>>>>> to trying it 
>>>>>
>>>>>>>>>>>> the way
>>>>>>>>>>>> I posted):
>>>>>>>>>>>>
>>>>>>>>>>>> javax.naming.NameNotFoundException: Name java:comp is 
>>>>>>>>>>>>                 
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>
>>>>> not bound 
>>>>>
>>>>>>>>>>>> in this
>>>>>>>>>>>> Context
>>>>>>>>>>>>
>>>>>>>>>>>>  
>>>>>>>>>>>>                 
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> No. Did you look at
>>>>>>>>>>>
>>>>>>>>>>>               
>>>>>>>>>>
>>>>>>>>>>
>>>>>
>>>>> http://jakarta.apache.org/tomcat/tomcat-5.5-doc/jndi-datasourc
>>>>> e-examples-howto.html? 
>>>>>
>>>>>>>>>>> I recommend putting the context definition in its own 
>>>>>>>>>>>               
>>>>>>>>>>
>>>>>>>>>>
>>>>>
>>>>> content.xml. On
>>>>>  
>>>>>
>>>>>>>>>>> redeploying my application tomcat wouldn't find 
>>>>>>>>>>> the               
>>>>>>>>>>
>>>>>>>>>>
>>>>>
>>>>> driver class 
>>>>>
>>>>>>>>>>> anymore.
>>>>>>>>>>>
>>>>>>>>>>> Mind you not the class itself but the definition 
>>>>>>>>>>> of               
>>>>>>>>>>
>>>>>>>>>>
>>>>>
>>>>> what class to 
>>>>>
>>>>>>>>>>> load.
>>>>>>>>>>>
>>>>>>>>>>> This problem was solved by putting the context 
>>>>>>>>>>> into               
>>>>>>>>>>
>>>>>>>>>>
>>>>>
>>>>> context.xml.
>>>>>  
>>>>>
>>>>>>>>>>> regards
>>>>>>>>>>>      Dirk
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>               
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>             
>>>>>>>>>
>>>>>>>>>
>>>>>
>>>>> ---------------------------------------------------------------------
>>>>>  
>>>>>
>>>>>>>>>> To unsubscribe, e-mail:             
>>>>>>>>>
>>>>>>>>>
>>>>>
>>>>> tomcat-user-unsubscribe@jakarta.apache.org
>>>>>  
>>>>>
>>>>>>>>>> For additional commands, e-mail:             
>>>>>>>>>
>>>>>>>>>
>>>>>
>>>>> tomcat-user-help@jakarta.apache.org
>>>>>  
>>>>>
>>>>>>>>>>             
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>           
>>>>>>>>
>>>>>>>>
>>>>>
>>>>> --------------------------------------------------------------
>>>>> ---------- 
>>>>>
>>>>>>>>>
>>>>>>>>>           
>>>>>>>>
>>>>>>>>
>>>>>
>>>>> ---------------------------------------------------------------------
>>>>>  
>>>>>
>>>>>>>>> To unsubscribe, e-mail:           
>>>>>>>>
>>>>>>>>
>>>>>
>>>>> tomcat-user-unsubscribe@jakarta.apache.org
>>>>>  
>>>>>
>>>>>>>>> For additional commands, e-mail:           
>>>>>>>>
>>>>>>>>
>>>>>
>>>>> tomcat-user-help@jakarta.apache.org
>>>>>  
>>>>>
>>>>>>>>         
>>>>>>>
>>>>>>>
>>>>>
>>>>> ---------------------------------------------------------------------
>>>>>  
>>>>>
>>>>>>>> To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
>>>>>>>> For additional commands, e-mail:         
>>>>>>>
>>>>>>>
>>>>>
>>>>> tomcat-user-help@jakarta.apache.org
>>>>>  
>>>>>
>>>>>>>>         
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>       
>>>>>>
>>>>>>
>>>>>
>>>>> --------------------------------------------------------------
>>>>> ----------
>>>>>  
>>>>>
>>>>>>>       
>>>>>>
>>>>>>
>>>>>
>>>>> ---------------------------------------------------------------------
>>>>>  
>>>>>
>>>>>>> To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
>>>>>>> For additional commands, e-mail:       
>>>>>>
>>>>>>
>>>>>
>>>>> tomcat-user-help@jakarta.apache.org
>>>>>  
>>>>>
>>>>>>     
>>>>>
>>>>>
>>>>>
>>>>> ---------------------------------------------------------------------
>>>>>  
>>>>>
>>>>>> To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
>>>>>> For additional commands, e-mail: tomcat-user-help@jakarta.apache.org
>>>>>>
>>>>>>
>>>>>>     
>>>>>
>>>>>
>>>>>
>>>>> -- 
>>>>> Brian Cook
>>>>> Digital Services Analyst
>>>>> Print Time Inc.
>>>>> bcook@printtime.com
>>>>> 913.345.8900
>>>>>
>>>>>
>>>>>   
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> <FONT SIZE=1 FACE="VERDANA,ARIAL" COLOR=BLUE> 
>>>> -------------------------------------------------------
>>>> QAS Ltd.
>>>> Registered in England: No 2582055
>>>> Registered in Australia: No 082 851 474
>>>> -------------------------------------------------------
>>>> </FONT>
>>>>
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
>>>> For additional commands, e-mail: tomcat-user-help@jakarta.apache.org
>>>>
>>>>
>>>>  
>>>>
>>>
>>> ------------------------------------------------------------------------
>>>
>>> <?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-name>dbname</display-name>        <resource-ref>
>>>       <description>DB Connection</description>
>>>       <res-ref-name>jdbc/dbname</res-ref-name>
>>>       <res-type>javax.sql.DataSource</res-type>
>>>       <res-auth>Container</res-auth>
>>>   </resource-ref>
>>>
>>>    <context-param>
>>>       <param-name>dbdriver</param-name>
>>>       <param-value>com.mysql.jdbc.Driver</param-value>
>>>    </context-param>
>>>    <context-param>
>>>       <param-name>dburl</param-name>
>>>       <param-value>jdbc:mysql://localhost:3306/dbname</param-value>
>>>    </context-param>
>>>    <context-param>
>>>       <param-name>dbuser</param-name>
>>>       <param-value>transroot</param-value>
>>>    </context-param>
>>>    <context-param>
>>>       <param-name>dbpw</param-name>
>>>       <param-value>password</param-value>
>>>    </context-param>
>>>       <listener>
>>>       <listener-class>com.dbname.utils.ContextListener</listener-class>
>>>    </listener>
>>>
>>> <!--
>>>    <filter>
>>>         <filter-name>TransFilter</filter-name>
>>>         <filter-class>com.dbname.utils.TransFilterFilter</filter-class>
>>>     </filter>
>>>    <filter-mapping>
>>>       <filter-name>TransFilter</filter-name>
>>>       <url-pattern>/pages/*</url-pattern>
>>>    </filter-mapping>
>>>    <filter-mapping>
>>>       <filter-name>TransFilterFilter</filter-name>
>>>       <url-pattern>/WEB-INF/*</url-pattern>
>>>    </filter-mapping> -->
>>>       <servlet>
>>>       <servlet-name>Login</servlet-name>
>>>       <servlet-class>com.dbname.servlets.LoginServlet</servlet-class>
>>>    </servlet>
>>>    <servlet-mapping>
>>>       <servlet-name>Login</servlet-name>
>>>       <url-pattern>/Login</url-pattern>
>>>    </servlet-mapping>
>>>
>>>    <servlet>
>>>       <servlet-name>Signup</servlet-name>
>>>       <servlet-class>com.dbname.servlets.SignupServlet</servlet-class>
>>>    </servlet>
>>>    <servlet-mapping>
>>>       <servlet-name>Signup</servlet-name>
>>>       <url-pattern>/Signup</url-pattern>
>>>    </servlet-mapping>
>>>
>>>    <servlet>
>>>       <servlet-name>RecoverPassword</servlet-name>
>>>       
>>> <servlet-class>com.dbname.servlets.RecoverPasswordServlet</servlet-class> 
>>>
>>>    </servlet>
>>>    <servlet-mapping>
>>>       <servlet-name>RecoverPassword</servlet-name>
>>>       <url-pattern>/RecoverPassword</url-pattern>
>>>    </servlet-mapping>
>>>
>>>    <servlet>
>>>       <servlet-name>UserDetails</servlet-name>
>>>       
>>> <servlet-class>com.dbname.servlets.UserDetailsServlet</servlet-class>
>>>    </servlet>
>>>    <servlet-mapping>
>>>       <servlet-name>UserDetails</servlet-name>
>>>       <url-pattern>/UserDetails</url-pattern>
>>>    </servlet-mapping>
>>>       <welcome-file-list>
>>>       <welcome-file>index.jsp</welcome-file>
>>>    </welcome-file-list>
>>>
>>> </web-app>
>>>
>>>
>>> ------------------------------------------------------------------------
>>>
>>> <?xml version="1.0" encoding="UTF-8"?>
>>> <Context>
>>>       <Resource name="jdbc/dbname"                     auth="Container"
>>>             type="javax.sql.DataSource"
>>>             username="transroot"
>>>             password="password"
>>>             driverClassName="org.hsql.jdbcDriver"                
>>> url="jdbc:mysql://localhost:3306/dbname"
>>>             maxActive="50"
>>>             maxIdle="30"/>
>>> </Context>
>>>
>>>
>>> ------------------------------------------------------------------------
>>>
>>> package com.dbname.utils;
>>>
>>> import javax.naming.*;
>>> import javax.sql.*;
>>> import java.sql.*;
>>> import java.util.*;
>>> import org.apache.commons.dbcp.BasicDataSourceFactory;
>>> import org.apache.commons.collections.*;
>>> import org.apache.commons.pool.*;
>>>
>>> public class DBManager {
>>>
>>>   String username = "";
>>>       public void init() throws SQLException, NamingException, 
>>> Exception{
>>>     String query = "SELECT * FROM UserDetails";
>>>     username = "getting the query<br";
>>>
>>>          username += "setting initCtx<br>";
>>>          //Properties p=new Properties();
>>>          
>>> //p.put(Context.INITIAL_CONTEXT_FACTORY,"org.apache.commons.dbcp.BasicDataSourceFactory"); 
>>>
>>>          //p.put(Context.PROVIDER_URL,"jdbc:mysql://localhost:3306");
>>>          Context initCtx = new InitialContext();
>>>          username += "setting envCtx<br>";
>>>          Context envCtx = (Context) initCtx.lookup("java:comp/env");
>>>                   //if(envCtx == null ) {
>>>             //throw new Exception("Boom - No Environment Context");
>>>         // }
>>>                   // the following matches the resource name defined 
>>> in foo.xml
>>>          username += "setting ds<br>";
>>>          //DataSource ds = (DataSource) envCtx.lookup("jdbc/dbname");
>>>          DataSource ds = (DataSource) envCtx.lookup("jdbc/dbname");
>>>                   if (ds != null) {
>>>             username += "setting conn<br>";
>>>             Connection conn = ds.getConnection();
>>>                      if(conn != null) {
>>>             username += "setting stmt<br>";
>>>                Statement stmt = conn.createStatement ();
>>>             username += "setting rs<br>";
>>>                ResultSet rs = stmt.executeQuery (query);
>>>                if (!rs.next()) {
>>>                   username = "rs.next was false";
>>>                } else {
>>>                   username = rs.getString("username");
>>>                }
>>>                rs.close();
>>>                stmt.close();
>>>                conn.close();
>>>             } else {
>>>                throw new Exception("No Connection");
>>>             }
>>>          } else {
>>>             throw new Exception("No Datasource");
>>>          }
>>>    }
>>>       public String getUsername() {       return username;
>>>    }
>>> }
>>>
>>>
>>> ------------------------------------------------------------------------
>>>
>>> <!-- 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="8080" maxHttpHeaderSize="8192"
>>>                maxThreads="150" minSpareThreads="25" 
>>> maxSpareThreads="75"
>>>                enableLookups="false" redirectPort="8443" 
>>> acceptCount="100"
>>>                connectionTimeout="20000" 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" maxHttpHeaderSize="8192"
>>>                maxThreads="150" minSpareThreads="25" 
>>> maxSpareThreads="75"
>>>                enableLookups="false" disableUploadTimeout="true"
>>>                acceptCount="100" scheme="https" secure="true"
>>>                clientAuth="false" sslProtocol="TLS" />
>>>
>>>     <!-- Define an AJP 1.3 Connector on port 8009 -->
>>>     <Connector port="8009"                enableLookups="false" 
>>> redirectPort="8443" protocol="AJP/1.3" />
>>>
>>>     <!-- Define a Proxied HTTP/1.1 Connector on port 8082 -->
>>>     <!-- See proxy documentation for more information about using 
>>> this. -->
>>>     <!--
>>>     <Connector port="8082"                maxThreads="150" 
>>> minSpareThreads="25" maxSpareThreads="75"
>>>                enableLookups="false" acceptCount="100" 
>>> connectionTimeout="20000"
>>>                proxyPort="80" disableUploadTimeout="true" />
>>>     -->
>>>
>>>     <!-- An Engine represents the entry point (within Catalina) that 
>>> processes
>>>          every request.  The Engine implementation for Tomcat stand 
>>> alone
>>>          analyzes the HTTP headers included with the request, and 
>>> passes them
>>>          on to the appropriate Host (virtual host). -->
>>>
>>>     <!-- You should set jvmRoute to support load-balancing via AJP ie :
>>>     <Engine name="Standalone" defaultHost="localhost" 
>>> jvmRoute="jvm1">             -->              <!-- Define the top 
>>> level container in our container hierarchy -->
>>>     <Engine name="Catalina" defaultHost="localhost">
>>>
>>>       <!-- The request dumper valve dumps useful debugging 
>>> information about
>>>            the request headers and cookies that were received, and 
>>> the response
>>>            headers and cookies that were sent, for all requests 
>>> received by
>>>            this instance of Tomcat.  If you care only about requests 
>>> to a
>>>            particular virtual host, or a particular application, nest 
>>> this
>>>            element inside the corresponding <Host> or <Context> entry 
>>> instead.
>>>
>>>            For a similar mechanism that is portable to all Servlet 2.4
>>>            containers, check out the "RequestDumperFilter" Filter in the
>>>            example application (the source for this filter may be 
>>> found in
>>>            "$CATALINA_HOME/webapps/examples/WEB-INF/classes/filters").
>>>
>>>            Request dumping is disabled by default.  Uncomment the 
>>> following
>>>            element to enable it. -->
>>>       <!--
>>>       <Valve className="org.apache.catalina.valves.RequestDumperValve"/>
>>>       -->
>>>
>>>       <!-- Because this Realm is here, an instance will be shared 
>>> globally -->
>>>
>>>       <!-- This Realm uses the UserDatabase configured in the global 
>>> JNDI
>>>            resources under the key "UserDatabase".  Any edits
>>>            that are performed against this UserDatabase are immediately
>>>            available for use by the Realm.  -->
>>>       <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
>>>              resourceName="UserDatabase"/>
>>>
>>>       <!-- Comment out the old realm but leave here for now in case we
>>>            need to go back quickly -->
>>>       <!--
>>>       <Realm className="org.apache.catalina.realm.MemoryRealm" />
>>>       -->
>>>
>>>       <!-- Replace the above Realm with one of the following to get a 
>>> Realm
>>>            stored in a database and accessed via JDBC -->
>>>
>>>       <!--
>>>       <Realm  className="org.apache.catalina.realm.JDBCRealm"
>>>              driverName="org.gjt.mm.mysql.Driver"
>>>           connectionURL="jdbc:mysql://localhost/authority"
>>>          connectionName="test" connectionPassword="test"
>>>               userTable="users" userNameCol="user_name" 
>>> userCredCol="user_pass"
>>>           userRoleTable="user_roles" roleNameCol="role_name" />
>>>       -->
>>>
>>>       <!--
>>>       <Realm  className="org.apache.catalina.realm.JDBCRealm"
>>>              driverName="oracle.jdbc.driver.OracleDriver"
>>>           connectionURL="jdbc:oracle:thin:@ntserver:1521:ORCL"
>>>          connectionName="scott" connectionPassword="tiger"
>>>               userTable="users" userNameCol="user_name" 
>>> userCredCol="user_pass"
>>>           userRoleTable="user_roles" roleNameCol="role_name" />
>>>       -->
>>>
>>>       <!--
>>>       <Realm  className="org.apache.catalina.realm.JDBCRealm"
>>>              driverName="sun.jdbc.odbc.JdbcOdbcDriver"
>>>           connectionURL="jdbc:odbc:CATALINA"
>>>               userTable="users" userNameCol="user_name" 
>>> userCredCol="user_pass"
>>>           userRoleTable="user_roles" roleNameCol="role_name" />
>>>       -->
>>>
>>>       <!-- Define the default virtual host
>>>            Note: XML Schema validation will not work with Xerces 2.2.
>>>        -->
>>>       <Host name="localhost"             appBase="webapps"
>>>             unpackWARs="true"             autoDeploy="true"
>>>             xmlValidation="false"             xmlNamespaceAware="false">
>>>
>>>         <!-- Defines a cluster for this node,
>>>              By defining this element, means that every manager will 
>>> be changed.
>>>              So when running a cluster, only make sure that you have 
>>> webapps in there
>>>              that need to be clustered and remove the other ones.
>>>              A cluster has the following parameters:
>>>
>>>              className = the fully qualified name of the cluster class
>>>
>>>              name = a descriptive name for your cluster, can be anything
>>>
>>>              mcastAddr = the multicast address, has to be the same 
>>> for all the nodes
>>>
>>>              mcastPort = the multicast port, has to be the same for 
>>> all the nodes
>>>                           mcastBindAddr = bind the multicast socket 
>>> to a specific address
>>>                           mcastTTL = the multicast TTL if you want to 
>>> limit your broadcast
>>>                           mcastSoTimeout = the multicast readtimeout
>>>              mcastFrequency = the number of milliseconds in between 
>>> sending a "I'm alive" heartbeat
>>>
>>>              mcastDropTime = the number a milliseconds before a node 
>>> is considered "dead" if no heartbeat is received
>>>
>>>              tcpThreadCount = the number of threads to handle 
>>> incoming replication requests, optimal would be the same amount of 
>>> threads as nodes
>>>              tcpListenAddress = the listen address (bind address) for 
>>> TCP cluster request on this host,                                 in 
>>> case of multiple ethernet cards.
>>>                                 auto means that address becomes
>>>                                 
>>> InetAddress.getLocalHost().getHostAddress()
>>>
>>>              tcpListenPort = the tcp listen port
>>>
>>>              tcpSelectorTimeout = the timeout (ms) for the 
>>> Selector.select() method in case the OS
>>>                                   has a wakup bug in java.nio. Set to 
>>> 0 for no timeout
>>>
>>>              printToScreen = true means that managers will also print 
>>> to std.out
>>>
>>>              expireSessionsOnShutdown = true means that
>>>              useDirtyFlag = true means that we only replicate a 
>>> session after setAttribute,removeAttribute has been called.
>>>                             false means to replicate the session 
>>> after each request.
>>>                             false means that replication would work 
>>> for the following piece of code: (only for SimpleTcpReplicationManager)
>>>                             <%
>>>                             HashMap map = 
>>> (HashMap)session.getAttribute("map");
>>>                             map.put("key","value");
>>>                             %>
>>>              replicationMode = can be either 'pooled', 'synchronous' 
>>> or 'asynchronous'.
>>>                                * Pooled means that the replication 
>>> happens using several sockets in a synchronous way. Ie, the data gets 
>>> replicated, then the request return. This is the same as the 
>>> 'synchronous' setting except it uses a pool of sockets, hence it is 
>>> multithreaded. This is the fastest and safest configuration. To use 
>>> this, also increase the nr of tcp threads that you have dealing with 
>>> replication.
>>>                                * Synchronous means that the thread 
>>> that executes the request, is also the
>>>                                thread the replicates the data to the 
>>> other nodes, and will not return until all
>>>                                nodes have received the information.
>>>                                * Asynchronous means that there is a 
>>> specific 'sender' thread for each cluster node,
>>>                                so the request thread will queue the 
>>> replication request into a "smart" queue,
>>>                                and then return to the client.
>>>                                The "smart" queue is a queue where 
>>> when a session is added to the queue, and the same session
>>>                                already exists in the queue from a 
>>> previous request, that session will be replaced
>>>                                in the queue instead of replicating 
>>> two requests. This almost never happens, unless there is a 
>>>                                large network delay.
>>>         -->                     <!--
>>>             When configuring for clustering, you also add in a valve 
>>> to catch all the requests
>>>             coming in, at the end of the request, the session may or 
>>> may not be replicated.
>>>             A session is replicated if and only if all the conditions 
>>> are met:
>>>             1. useDirtyFlag is true or setAttribute or 
>>> removeAttribute has been called AND
>>>             2. a session exists (has been created)
>>>             3. the request is not trapped by the "filter" attribute
>>>
>>>             The filter attribute is to filter out requests that could 
>>> not modify the session,
>>>             hence we don't replicate the session after the end of 
>>> this request.
>>>             The filter is negative, ie, anything you put in the 
>>> filter, you mean to filter out,
>>>             ie, no replication will be done on requests that match 
>>> one of the filters.
>>>             The filter attribute is delimited by ;, so you can't 
>>> escape out ; even if you wanted to.
>>>
>>>             filter=".*\.gif;.*\.js;" means that we will not replicate 
>>> the session after requests with the URI
>>>             ending with .gif and .js are intercepted.
>>>                         The deployer element can be used to deploy 
>>> apps cluster wide.
>>>             Currently the deployment only deploys/undeploys to 
>>> working members in the cluster
>>>             so no WARs are copied upons startup of a broken node.
>>>             The deployer watches a directory (watchDir) for WAR files 
>>> when watchEnabled="true"
>>>             When a new war file is added the war gets deployed to the 
>>> local instance,
>>>             and then deployed to the other instances in the cluster.
>>>             When a war file is deleted from the watchDir the war is 
>>> undeployed locally             and cluster wide
>>>         -->
>>>                 <!--
>>>         <Cluster 
>>> className="org.apache.catalina.cluster.tcp.SimpleTcpCluster"
>>>                  
>>> managerClassName="org.apache.catalina.cluster.session.DeltaManager"
>>>                  expireSessionsOnShutdown="false"
>>>                  useDirtyFlag="true"
>>>                  notifyListenersOnReplication="true">
>>>
>>>             <Membership                 
>>> className="org.apache.catalina.cluster.mcast.McastService"
>>>                 mcastAddr="228.0.0.4"
>>>                 mcastPort="45564"
>>>                 mcastFrequency="500"
>>>                 mcastDropTime="3000"/>
>>>
>>>             <Receiver                 
>>> className="org.apache.catalina.cluster.tcp.ReplicationListener"
>>>                 tcpListenAddress="auto"
>>>                 tcpListenPort="4001"
>>>                 tcpSelectorTimeout="100"
>>>                 tcpThreadCount="6"/>
>>>
>>>             <Sender
>>>                 
>>> className="org.apache.catalina.cluster.tcp.ReplicationTransmitter"
>>>                 replicationMode="pooled"
>>>                 ackTimeout="15000"/>
>>>
>>>             <Valve 
>>> className="org.apache.catalina.cluster.tcp.ReplicationValve"
>>>                    
>>> filter=".*\.gif;.*\.js;.*\.jpg;.*\.png;.*\.htm;.*\.html;.*\.css;.*\.txt;"/> 
>>>
>>>                                <Deployer 
>>> className="org.apache.catalina.cluster.deploy.FarmWarDeployer"
>>>                       tempDir="/tmp/war-temp/"
>>>                       deployDir="/tmp/war-deploy/"
>>>                       watchDir="/tmp/war-listen/"
>>>                       watchEnabled="false"/>
>>>         </Cluster>
>>>         -->      
>>>
>>>         <!-- Normally, users must authenticate themselves to each web 
>>> app
>>>              individually.  Uncomment the following entry if you 
>>> would like
>>>              a user to be authenticated the first time they encounter a
>>>              resource protected by a security constraint, and then 
>>> have that
>>>              user identity maintained across *all* web applications 
>>> contained
>>>              in this virtual host. -->
>>>         <!--
>>>         <Valve 
>>> className="org.apache.catalina.authenticator.SingleSignOn" />
>>>         -->
>>>
>>>         <!-- Access log processes all requests for this virtual 
>>> host.  By
>>>              default, log files are created in the "logs" directory 
>>> relative to
>>>              $CATALINA_HOME.  If you wish, you can specify a different
>>>              directory with the "directory" attribute.  Specify 
>>> either a relative
>>>              (to $CATALINA_HOME) or absolute path to the desired 
>>> directory.
>>>         -->
>>>         <!--
>>>         <Valve className="org.apache.catalina.valves.AccessLogValve"
>>>                  directory="logs"  prefix="localhost_access_log." 
>>> suffix=".txt"
>>>                  pattern="common" resolveHosts="false"/>
>>>         -->
>>>
>>>         <!-- Access log processes all requests for this virtual 
>>> host.  By
>>>              default, log files are created in the "logs" directory 
>>> relative to
>>>              $CATALINA_HOME.  If you wish, you can specify a different
>>>              directory with the "directory" attribute.  Specify 
>>> either a relative
>>>              (to $CATALINA_HOME) or absolute path to the desired 
>>> directory.
>>>              This access log implementation is optimized for maximum 
>>> performance,
>>>              but is hardcoded to support only the "common" and 
>>> "combined" patterns.
>>>         -->
>>>         <!--
>>>         <Valve 
>>> className="org.apache.catalina.valves.FastCommonAccessLogValve"
>>>                  directory="logs"  prefix="localhost_access_log." 
>>> suffix=".txt"
>>>                  pattern="common" resolveHosts="false"/>
>>>         -->
>>>         <!-- Access log processes all requests for this virtual 
>>> host.  By
>>>              default, log files are created in the "logs" directory 
>>> relative to
>>>              $CATALINA_HOME.  If you wish, you can specify a different
>>>              directory with the "directory" attribute.  Specify 
>>> either a relative
>>>              (to $CATALINA_HOME) or absolute path to the desired 
>>> directory.
>>>              This access log implementation is optimized for maximum 
>>> performance,
>>>              but is hardcoded to support only the "common" and 
>>> "combined" patterns.
>>>
>>>              This valve use NIO direct Byte Buffer to asynchornously 
>>> store the
>>>              log.
>>>         -->
>>>         <!--
>>>         <Valve 
>>> className="org.apache.catalina.valves.ByteBufferAccessLogValve"
>>>                  directory="logs"  prefix="localhost_access_log." 
>>> suffix=".txt"
>>>                  pattern="common" resolveHosts="false"/>
>>>         -->
>>>
>>>       </Host>
>>>     </Engine>
>>>   </Service>
>>> </Server>
>>>
>>>
>>> ------------------------------------------------------------------------
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
>>> For additional commands, e-mail: tomcat-user-help@jakarta.apache.org
>>
>>
>>
>>
>> ------------------------------------------------------------------------
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
>> For additional commands, e-mail: tomcat-user-help@jakarta.apache.org
>>
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: tomcat-user-help@jakarta.apache.org
> 
> 


-- 
Brian Cook
Digital Services Analyst
Print Time Inc.
bcook@printtime.com
913.345.8900


Mime
View raw message