Chris and Yiannis,

I've done the configuration as you mentioned, and I still receive the 
same exception... I've also changed the code to use one
context instead of two, still the same exception...

Here's what I have for my config file.

In my server.xml:

<GlobalNamingResource>
  <Resource name="jdbc/mySQLDatabase" auth="Container" 
    type="javax.sql.DataSource"/>
  <ResourceParams name="jdbc/mySQLDatabase"?
     <parameter>
         <name>factory</name>
         <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
      </parameter>
      <parameter>
         <name>driverClassName</name>
         <value>org.gjt.mm.mysql.Driver</value>
      </parameter>
      <parameter>
         <name>url</name>
        
<value>jdbc:mysql://localhost:3306/ecpa?autoReconnect=true</value>
      </parameter>
     .... more params
   </ResourceParams>
</GlobalNamingResource>

<Context path="/mo" docBase="ROOT" debug="0" reloadable="true">
    <ResourceLink name="jdbc/mySQLDatabase"
global="jdbc/mySQLDatabase"
      type="javax.sql.DataSource"/>
</Context>

In my web.xml:
...
<res-ref-name>jdbc/mySQLDatabase</res-ref-name>

Does this looks correct? From the exception message, which  class name
is it looking for?

Thanks,
--Kawthar

>>> [EMAIL PROTECTED] 15/03/2004 05:46:33 PM >>>
I have to go by the assumption that everything else regarding the Data
Resource in your 
server.xml and web.xml is correct.
                try {
                        Context ctx = new InitialContext();
                        dataSource = ( DataSource )
ctx.lookup("java:comp/env/jdbc/yourDB" );                       
                }
                catch (NamingException e1) {
                        e1.printStackTrace();
                }
This is what your code should be doing IMHO, and not creating 2
Context
objects.

Yiannis

-----Original Message-----
From: Kawthar Bt M Sulaiman [mailto:[EMAIL PROTECTED] 
Sent: 15 March 2004 08:37
To: [EMAIL PROTECTED] 
Subject: Re: JNDI Datasource Reference in DD Not Necessary?


Hi Harry,

I've been trying to setup my mySQL connection to tomcat as well and
has
been reading a lot of documents on how to do this.  I think I'm
getting
more
confused.

I've setup my params as you suggested below.  When I ran my sample
app, I got the following exception:

javax.naming.NoInitialContextException: Need to specify class name in
environment or system property, or as an applet parameter, or in an
application resoure file: 
   java.naming.factory.initial
         at javax.naming.spi.NamingManager.getInitialContext<unknown
source>
         at javax.naming.InitialContext.getDefaultInitCtx<unknown
source>
         at javax.naming.InitialContext.getURLOrDefaultInitCtx<unknown
source>
         at javax.naming.InitialContext.lookup<unknown source>
         at
com.maxis.app.ContentProcessor.main<ContentProcessor.java:34>

Here's my code:
Context ctx = new InitialContext();
Context evtCtx = (Context) ctx.lookup("java:comp/env");
DataSource ds = (DataSource) evtCtx.lookup("jdbc/mySQLDatabase");
---> in my web.xml : <res-ref-name>jdbc/mySQLDatabase</res-ref-name>
---> in my server.xml: <ResourceParams name="jdbc/mySQLDatabase">

Any ideas???

Thanks,
--Kawthar

>>> [EMAIL PROTECTED] 10/03/2004 08:05:03 PM >>>
Hi Dave

Sorry for my long absence - I was away from my computer for while.

I think Doug's last message just about says it all in respect of
connection
pools. Follow his advice to use the Tomcat How-Tos exactly as they
are,
and
you should be okay.

I looked through your code - the stuff you originally posted following
my
suggestion to do so - and I did spot one crucial mistake.

This line in your test JSP:


    DataSource ds = ( DataSource )
ctx.lookup("java:comp/env/jdbc/MyDS"
);


Should read:


    DataSource ds = ( DataSource )
ctx.lookup("java:comp/env/jdbc/mysql" );


Spot the difference? :-)

The "jdbc/mysql" context refers to the name given to the resource in
the
context.xml:


    Resource name="jdbc/mysql"
           type="com.mysql.jdbc.jdbc2..."
           auth="Container"/>


I would also urge you to go back to using the Commons DBCP resources,
and
specifying the "jdbc/mysql" resource as in the Tomcat How-To - namely,
this
definition:


    <Resource 
     name="jdbc/mysql"
    
type="com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource"
     auth="Container"/>


Should read:


    <Resource 
     name="jdbc/mysql"
     auth="Container"
     type="javax.sql.DataSource"/>


And this ResourceParams element:


    <parameter>
        <name>factory</name>
        <value>
            com.mysql.jdbc.jdbc2.optional.MysqlDataSourceFactory
        </value>
    </parameter>


Should read:


    <parameter>
        <name>factory</name>
        <value>
            org.apache.commons.dbcp.BasicDataSourceFactory
        </value>
    </parameter>


Stick to the Tomcat How-Tos, using the Commons DBCP package, at least
until
you get the thing working, and then you can switch if you want.

Finally, just a suggestion, but I would specify the minimum possible
for the
'url' attribute:


    <parameter>
        <name>url</name>
        <value>
            jdbc:mysql://localhost:3306/DATABASE
        </value>
    </parameter>


Keep it simple, to start with :-) because it could just be one of
those
non-essential parameters is causing the thing to break.

Good luck!

Harry



>> Despite my posting - and I really hope someone chips in concerning
the
>> question I raised about the <resource-ref> being redundant in the
deployment
>> descriptor (!) - the first thing to say is, have faith!
>> 
>> Connection pooling works, and it is actually quite simple, so do
not
give up
>> on it.
> 
> Cheers for the advice Harry... here's where I'm at....
> 
> I have no choice on the giving up side of things, need to implement
it
> for some client code I'm working on
> 
> ;-)
> 
> I've been doing a lot of googling to try and get answers so I may
have
> got crossed wires, I had a version working (or thinking it was
working)
> with the info in $JAKARTA_HOME/conf/server.xml but I wasn't happy
with
> this solution (preferring to have the connection defined in
> $JAKARTA_HOME/conf/Catalina/localhost/<app_name>.xml for good
reasons...
> 
> so I'm basically restarting and I now have the following config
> 
> $JAKARTA_HOME/conf/Catalina/localhost/<app_name>.xml
> 
> <?xml version='1.0' encoding='utf-8'?>
> <Context docBase="dev-sstl" path="/dev-sstl" reloadable="true"
> useNaming="false">
> 
> <Resource
> name="jdbc/mysql"
> type="com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource"
> auth="Container"/>
> <ResourceParams name="jdbc/mysql">
> <parameter>
> <name>factory</name>
> <value>com.mysql.jdbc.jdbc2.optional.MysqlDataSourceFactory</value>
> </parameter>
> <parameter>
> <name>port</name>
> <value>3306</value>
> </parameter>
> <parameter>
> <name>user</name>
> <value>USERNAME</value>
> </parameter>
> <parameter>
> <name>password</name>
> <value>PASSWORD</value>
> </parameter>
> <parameter>
> <name>serverName</name>
> <value>localhost</value>
> </parameter>
> <parameter>
> <name>databaseName</name>
> <value>DATABASE</value>
> </parameter>
> <parameter>
> <name>explicitUrl</name>
> <value>true</value>
> </parameter>
> <parameter>
> <name>url</name>
>
<value>jdbc:mysql://localhost:3306/DATABASE?autoReconnect=true&amp;useUnicod
e=
>
true&amp;characterEncoding=UTF8&amp;max-connections=50&amp;min-connections=2
&a
> mp;inactivity-timeout=30&amp;wait-timeout=30</value>
> </parameter>
> </ResourceParams>
> </Context>
> 
> The info for the above i gleaned from
> http://www.russellbeattie.com/notebook/1006529.html 
> 
> Then in <web_app>/WEB-INF/web.xml I have
> <?xml version="1.0" encoding="ISO-8859-1"?>
> <web-app xmlns="http://java.sun.com/xml/ns/j2ee";
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
> xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
> http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"; version="2.4">
> 
> <resource-ref>
> <description>DB connection</description>
> <res-ref-name>jdbc/mysql</res-ref-name>
> <res-type>javax.sql.DataSource</res-type>
> <res-auth>Container</res-auth>
> </resource-ref>
> </web-app>
> 
> Then in my test JSP I have
> try {
> Context ctx = new InitialContext();
> DataSource ds = ( DataSource ) ctx.lookup("java:comp/env/jdbc/MyDS"
);
> Connection conn = ds.getConnection();
> ...
> 
> And the error I get is
> 
> javax.servlet.ServletException: Name java:comp is not bound in this
> Context
> 
> Which is an error I've managed to hit several times, I know the
whole
> connection pooling is the right way to go about this, just surprised
at
> how long it is taking me to get going (I dread to think what it will
be
> like installing this live with the client, but I'll save that happy
> thought for later)
> 
> As ever any help much appreciated... (and if the person who helps me
to
> get this working is ever in London I'll stand them a beer or 3)
> 
> ;-)
> 
> TIA
> Dave


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



________________________________________________________________________
This e-mail has been scanned for all viruses by Star Internet. The
service is powered by MessageLabs.


Note:__________________________________________________________________
This message is for the named person's use only. It may contain
confidential, proprietary or legally privileged information. No
confidentiality or privilege is waived or lost by any mistransmission.
If you receive this message in error, please immediately delete it and
all copies of it from your system, destroy any hard copies of it and
notify the sender. You must not, directly or indirectly, use,
disclose,
distribute, print, or copy any part of this message if you are not the
intended recipient. Jaguar Freight Services and any of its
subsidiaries
each reserve the right to monitor all e-mail communications through
its
networks.
Any views expressed in this message are those of the individual
sender,
except where the message states otherwise and the sender is authorized
to state them to be the views of any such entity.
________________________________________________________________________
This e-mail has been scanned for all viruses by Star Internet. The
service is powered by MessageLabs.
Confidential information may be contained in this e-mail and any files transmitted 
with it ('Message'). If you are not the addressee indicated in this Message (or 
responsible for delivery of this Message to such person), you are hereby notified that 
any dissemination, distribution, printing or copying of this Message or any part 
thereof is strictly prohibited. In such a case, you should delete this Message 
immediately and advise the sender by return e-mail. Opinions, conclusions and other 
information in this Message that do not relate to the official business of Maxis shall 
be understood as neither given nor endorsed by Maxis.

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

Reply via email to