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:29:27 GMT
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-datasource-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


Mime
View raw message