Idem error to me, but with realm using DataSource:
problem is that DataSourceRealm can not find JNDI name in context.
There are a bug in tomcat 4.1, but this was resolved.
My xml in Catalina/localhost content:
<?xml version='1.0' encoding='utf-8'?>
<Context displayName="Gestion de cunetas."
docBase="/home/angel/workspace/yeguadas/tmp/web" path="/yeguadas" useNaming="false">
<Realm className="org.apache.catalina.realm.DataSourceRealm"
dataSourceName="jdbc/YeguadasDB" roleNameCol="NOMBRE" userCredCol="PASSWORD"
userNameCol="NOMBRELOGIN" userRoleTable="USUARIO_PERFILES" userTable="USUARIO"/>
<Resource auth="Container" name="jdbc/YeguadasDB" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/YeguadasDB">
<parameter>
<name>url</name>
<value>jdbc:mysql://localhost:3306/yeguadas?autoReconnect=true</value>
</parameter>
<parameter>
<name>validationQuery</name>
<value>select count(*) from usuario;</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>30</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>100</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>org.gjt.mm.mysql.Driver</value>
</parameter>
<parameter>
<name>maxWait</name>
<value>10000</value>
</parameter>
<parameter>
<name>username</name>
<value>ijdshkhds</value>
</parameter>
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<parameter>
<name>password</name>
<value>fdfdferfr</value>
</parameter>
</ResourceParams>
</Context>
This is the exception when user try login:
2004-09-09 15:43:46 DataSourceRealm[/yeguadas]: Excepci�n realizando autenticaci�n
javax.naming.NameNotFoundException: El nombre jdbc no este asociado a este contexto
at org.apache.naming.NamingContext.lookup(NamingContext.java:768)
at org.apache.naming.NamingContext.lookup(NamingContext.java:151)
at org.apache.catalina.realm.DataSourceRealm.open(DataSourceRealm.java:437)
at
org.apache.catalina.realm.DataSourceRealm.authenticate(DataSourceRealm.java:277)
at
org.apache.catalina.authenticator.BasicAuthenticator.authenticate(BasicAuthenticator.java:129)
at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:504)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
at java.lang.Thread.run(Thread.java:534)
El jue, 09-09-2004 a las 15:28, Kelly C. Goedert escribi�:
> Hi,
>
> I'm getting this error " Name jdbc is not bound in this Context" on my
> application. My tomcat version is 5.0.27.
>
> The servlet that is causing this error is trying to access a database
> with the following code:
>
> protected IDatabaseConnection getConnection() throws Exception {
>
> Context ic = new InitialContext();
> Context ctx = (Context) ic.lookup("java:comp/env");
> DataSource ds = (DataSource) ic.lookup("jdbc/boxes-cactus");
>
> con = new DatabaseDataSourceConnection( ds);
>
> return con;
>
> }
>
> My web.xml has the following configuration to the datasource:
>
> <resource-ref>
> <description>DB Connection</description>
> <res-ref-name>jdbc/boxes-cactus</res-ref-name>
> <res-type>javax.sql.DataSource</res-type>
> <res-auth>Container</res-auth>
> </resource-ref>
>
> And in $TOMCAT_HOME/conf/
> Catalina/localhost/boxes-cactus.xml I got this
>
> Context path="/boxes-cactus" docBase="boxes-cactus"
> debug="5" reloadable="true" crossContext="true">
>
>
> <Logger className="org.apache.catalina.logger.FileLogger"
> prefix="localhost_DBTest_log." suffix=".txt"
> timestamp="true"/>
>
> <Resource name="jdbc/boxes-cactus"
> auth="Container"
> type="javax.sql.DataSource"/>
>
> <ResourceParams name="jdbc/boxes-cactus">
> <parameter>
> <name>factory</name>
> <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
> </parameter>
>
> <!-- Maximum number of dB connections in pool. Make sure you
> configure your mysqld max_connections large enough to handle
> all of your db connections. Set to 0 for no limit.
> -->
> <parameter>
> <name>maxActive</name>
> <value>100</value>
> </parameter>
>
> <!-- Maximum number of idle dB connections to retain in pool.
> Set to -1 for no limit. See also the DBCP documentation on this
> and the minEvictableIdleTimeMillis configuration parameter.
> -->
> <parameter>
> <name>maxIdle</name>
> <value>30</value>
> </parameter>
>
> <!-- Maximum time to wait for a dB connection to become available
> in ms, in this example 10 seconds. An Exception is thrown if
> this timeout is exceeded. Set to -1 to wait indefinitely.
> -->
> <parameter>
> <name>maxWait</name>
> <value>10000</value>
> </parameter>
>
> <!-- MySQL dB username and password for dB connections -->
> <parameter>
> <name>username</name>
> <value>root</value>
> </parameter>
> <parameter>
> <name>password</name>
> <value>xxxxx</value>
> </parameter>
>
> <!-- Class name for the old mm.mysql JDBC driver - uncomment this
> entry and comment next
> if you want to use this driver - we recommend using Connector/J
> though
> <parameter>
> <name>driverClassName</name>
> <value>org.gjt.mm.mysql.Driver</value>
> </parameter>
> -->
>
> <!-- Class name for the official MySQL Connector/J driver -->
> <parameter>
> <name>driverClassName</name>
> <value>com.mysql.jdbc.Driver</value>
> </parameter>
>
> <!-- The JDBC connection url for connecting to your MySQL dB.
> The autoReconnect=true argument to the url makes sure that the
> mm.mysql JDBC Driver will automatically reconnect if mysqld
> closed the
> connection. mysqld by default closes idle connections after 8
> hours.
> -->
> <parameter>
> <name>url</name>
> <value>jdbc:mysql://localhost:3306/BOXES?autoReconnect=true</value>
> </parameter>
> </ResourceParams>
> </Context>
>
>
> Can anyone help?
>
> Kelly.
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
________________________________________________________________________
Angel Cervera Claudio
Telf. +34 670819234
Mail: [EMAIL PROTECTED]
Web: http://www.acervera.com
Msn Messenger: [EMAIL PROTECTED]
Yahoo Messenger: angelcervera
AOL Messenger: angelcervera
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]