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 Tue, 23 Aug 2005 15:45:09 GMT
thank you, i will

Allistair Crossley wrote:

>If you could please send
>
>1. server.xml
>2. web.xml
>3. context.xml or yourwebapp.xml
>4. list of files in common/lib
>5. list of files in yourwebapp/WEB-INF/lib
>
>I'd be happy to see if I can spot anything.
>
>  
>
>>-----Original Message-----
>>From: Sean Rowe [mailto:ichabooka@gmail.com]
>>Sent: 23 August 2005 16:41
>>To: Tomcat Users List
>>Subject: Re: jndi question
>>
>>
>>no, that didn't help.  thanks though.
>>
>>could this maybe be a class problem?  am i using the wrong 
>>jar files?  i 
>>can list the files i'm using if anyone thinks it might be the problem
>>
>>Allistair Crossley wrote:
>>
>>    
>>
>>>Hi,
>>>
>>>The documentation says;
>>>
>>>Context initCtx = new InitialContext();
>>>Context envCtx = (Context) initCtx.lookup("java:comp/env");
>>>DataSource ds = (DataSource)
>>> envCtx.lookup("jdbc/EmployeeDB");
>>>
>>>However, we use;
>>>
>>>try {
>>> Context ctx = new InitialContext();
>>> dataSource = (DataSource) ctx.lookup("java:comp/env/jdbc/yourdb");
>>>} catch (NamingException nE) {
>>> // log somewhere
>>>} catch (NullPointerException npE) {
>>> // log somewhere
>>>}
>>>
>>>Does that work for you? Allistair
>>>
>>> 
>>>
>>>      
>>>
>>>>-----Original Message-----
>>>>From: Sean Rowe [mailto:ichabooka@gmail.com]
>>>>Sent: 23 August 2005 16:29
>>>>To: Tomcat Users List
>>>>Subject: Re: jndi question
>>>>
>>>>
>>>>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
>>>
>>>
>>>
>>><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
>>>
>>>
>>> 
>>>
>>>      
>>>
>>---------------------------------------------------------------------
>>To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
>>For additional commands, e-mail: tomcat-user-help@jakarta.apache.org
>>
>>
>>    
>>
>
>
><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
>
>
>  
>

---------------------------------------------------------------------
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