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:41:02 GMT
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


Mime
View raw message