tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Sean Rowe <ichabo...@gmail.com>
Subject Re: jndi question
Date Thu, 25 Aug 2005 18:12:23 GMT
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


Mime
View raw message