i will try that.  thanks allistair, i really do appreciate this

Allistair Crossley wrote:

Hi Sean,

It looks from a quick glance that your JNDI configuration is done globally, 
rather than in the Context configuration, and you do not link to it using a 
ResourceLink.

Try adding
<ResourceLink name="myLinkToAppJndi"
 global="jdbc/appname"
 type="javax.sql.DataSource" />

Into the Context block, and remove the Resource block you have in there. The 
other thing to try would be to move the JNDI datasource Resource configuration 
block into the Context block.

See how you get on, Allistair.

-----Original Message-----
From: Sean Rowe [mailto:[EMAIL PROTECTED]
Sent: 23 August 2005 16:45
To: Tomcat Users List
Subject: Re: jndi question


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:[EMAIL PROTECTED]
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:[EMAIL PROTECTED]
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 <[EMAIL PROTECTED]>
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:
[EMAIL PROTECTED]
For additional commands, e-mail:
[EMAIL PROTECTED]
------------------------------------------------------------
------------
------------------------------------------------------------
---------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail:
[EMAIL PROTECTED]
-----------------------------------------------------------
----------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail:
[EMAIL PROTECTED]

<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: [EMAIL PROTECTED]
For additional commands, e-mail:
[EMAIL PROTECTED]


------------------------------------------------------------
---------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


<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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




<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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to