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
|