You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by robi <ro...@gmail.com> on 2007/01/11 11:34:07 UTC
Error: Name jdbc is not bound in this context
Dear all,
I am trying to use JDBC and transactions in Tomcat 5.5.20 with JOTM (as
explained this tutorial
http://jotm.objectweb.org/current/jotm/doc/howto-tomcat-jotm.html).
But I am getting the following error when I do
http://localhost:8080/dbtest/test.jsp,
" javax.naming.NameNotFoundException:Name jdbc is not bound in this context
"
As far as I understood by reading this error normally occurs when the
resource-env-ref in the web.xml does not match with the name in context.xml
but in my files I have the same names.
I am using mysql 5.0.18.
My context.xml looks like this,
<Context path="/dbtest" docBase="dbtest.war" debug="0"
reloadable="true" crossContext="true">
<Resource name="jdbc/myDB" auth="Container"
type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/myDB">
<parameter>
<name>factory</name>
<value>org.objectweb.jndi.DataSourceFactory</value>
</parameter>
<parameter><name>username</name><value>mojo</value></parameter>
<parameter><name>password</name><value>mojo</value></parameter>
<parameter><name>driverClassName</name>
<value>com.mysql.jdbc.Driver</value>
</parameter>
<parameter><name>url</name>
<value>jdbc:mysql://localhost/javatest</value></parameter>
</ResourceParams>
<Resource name="UserTransaction" auth="Container"
type="javax.transaction.UserTransaction"/>
<ResourceParams name="UserTransaction">
<parameter>
<name>factory</name>
<value>org.objectweb.jotm.UserTransactionFactory</value>
</parameter>
<parameter>
<name>jotm.timeout</name>
<value>60</value>
</parameter>
</ResourceParams>
</Context>
My web.xml,
<web-app>
<resource-env-ref>
<description>DB Connection</description>
<resource-env-ref-name>jdbc/myDB</resource-env-ref-name>
<resource-env-ref-type>javax.sql.DataSource</resource-env-ref-type>
</resource-env-ref>
</web-app>
my DBtest.java,
public class DBTest {
int foo=-1;
public void init(String completion)
{
try
{
Context ctx=new InitialContext();
Context envctx=(Context) ctx.lookup("java:comp/env");
DataSource ds= (DataSource) envctx.lookup("jdbc/myDB");
UserTransaction ut=
(UserTransaction)ctx.lookup("java:comp/UserTransaction");
java.sql.Connection conn=ds.getConnection();
System.out.println("beginning the transation");
ut.begin();
java.sql.Statement stmt= conn.createStatement();
ResultSet rst= stmt.executeQuery("select id,foo from testdata");
if(rst.next())
{
foo=rst.getInt(2);
}
System.out.println("foo =" +"(before completion");
PreparedStatement pstmt=conn.prepareStatement("update testdate set foo=?
where id=1");
pstmt.setInt(1,++foo);
pstmt.executeUpdate();
if(completion !=null && completion.equals("commit"))
{
System.out.println("committing the transaction");
ut.commit();
}
else
{
System.out.println("rolling back the transaction");
ut.rollback();
}
rst=stmt.executeQuery("select id,foo from testdata");
if(rst.next())
{
foo=rst.getInt(2);
}
System.out.println("foo =" +foo +"(after completion)");
conn.close();
System.out.println("done");
}
catch(Exception e)
{
e.printStackTrace();
}
}
public String getFoo()
{
return ""+foo;
}
}
I am stuggling with this for the past two days.Can anyone please tell me
where did I go wrong and how can I get rid of this error. Thanks in advance!
regards,
robi
--
View this message in context: http://www.nabble.com/Error%3A-Name-jdbc-is-not-bound-in-this-context-tf2958032.html#a8275077
Sent from the Tomcat - User mailing list archive at Nabble.com.
---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org
Re: Error: Name jdbc is not bound in this context
Posted by robi <ro...@gmail.com>.
Hi Mark,
Thanks for your reply.
I changed my Context.xml like this,
<Context path="/dbtest" docBase="dbtest.war" debug="0"
reloadable="true" crossContext="true">
<Resource name="jdbc/myDB" auth="Container"
type="javax.sql.DataSource" driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost/javatest" username="mojo" password="jojo"
maxActive="20" maxIdle="10" maxWait="-1"/>
but still I get the same error.
My log file shows this,
Jan 11, 2007 2:35:59 PM org.apache.coyote.http11.Http11BaseProtocol pause
INFO: Pausing Coyote HTTP/1.1 on http-8080
Jan 11, 2007 2:36:00 PM org.apache.catalina.core.StandardService stop
INFO: Stopping service Catalina
Jan 11, 2007 2:36:00 PM org.apache.coyote.http11.Http11BaseProtocol destroy
INFO: Stopping Coyote HTTP/1.1 on http-8080
Jan 11, 2007 2:36:00 PM org.apache.catalina.core.AprLifecycleListener
lifecycleEvent
INFO: Failed shutdown of Apache Portable Runtime
Jan 11, 2007 2:36:03 PM org.apache.catalina.core.AprLifecycleListener
lifecycleEvent
INFO: The Apache Tomcat Native library which allows optimal performance in
production environments was not found on the java.library.path: C:\JDK
1.5.0_06\bin;.;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\apache2triad\bin;C:\apache2triad\perl\bin;C:\apache2triad\php\bin;C:\apache2triad\mysql\bin;C:\apache2triad\opssl\bin;C:\apache2triad\python\bin;C:\apache2triad\pgsql\bin;C:\JDK
1.5.0_06\bin;;C:\apache2triad\bin;C:\apache2triad\perl\bin;C:\apache2triad\php\bin;C:\apache2triad\mysql\bin;C:\apache2triad\opssl\bin;C:\apache2triad\python\bin;C:\apache2triad\pgsql\bin;C:\Sun\SDK\bin;C:\JDK
1.5.0_06\bin;C:\ANT\apache-ant-1.6.5\bin;
Jan 11, 2007 2:36:03 PM org.apache.coyote.http11.Http11BaseProtocol init
INFO: Initializing Coyote HTTP/1.1 on http-8080
Jan 11, 2007 2:36:03 PM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 875 ms
Jan 11, 2007 2:36:03 PM org.apache.catalina.core.StandardService start
INFO: Starting service Catalina
Jan 11, 2007 2:36:03 PM org.apache.catalina.core.StandardEngine start
INFO: Starting Servlet Engine: Apache Tomcat/5.5.20
Jan 11, 2007 2:36:03 PM org.apache.catalina.core.StandardHost start
INFO: XML validation disabled
Jan 11, 2007 2:36:04 PM org.apache.catalina.startup.HostConfig deployWAR
INFO: Deploying web application archive bank.war
Jan 11, 2007 2:36:04 PM org.apache.catalina.loader.WebappClassLoader
validateJarFile
INFO: validateJarFile(C:\Tomcat
5.5\apache-tomcat-5.5.20\webapps\bank\WEB-INF\lib\servlet.jar) - jar not
loaded. See Servlet Spec 2.3, section 9.7.2. Offending class:
javax/servlet/Servlet.class
Jan 11, 2007 2:36:04 PM org.apache.catalina.startup.HostConfig deployWAR
INFO: Deploying web application archive dbtest.war
Jan 11, 2007 2:36:04 PM org.apache.catalina.startup.HostConfig deployWAR
INFO: Deploying web application archive struts-blank-1.3.5.war
Jan 11, 2007 2:36:04 PM org.apache.struts.action.ActionServlet initChain
INFO: Loading chain catalog from
jar:file:/C:/Tomcat%205.5/apache-tomcat-5.5.20/webapps/struts-blank-1.3.5/WEB-INF/lib/struts-core-1.3.5.jar!/org/apache/struts/chain/chain-config.xml
Jan 11, 2007 2:36:05 PM org.apache.struts.validator.ValidatorPlugIn
initResources
INFO: Loading validation rules file from
'/org/apache/struts/validator/validator-rules.xml'
Jan 11, 2007 2:36:05 PM org.apache.struts.validator.ValidatorPlugIn
initResources
INFO: Loading validation rules file from '/WEB-INF/validation.xml'
Any ideas?? Am I doing something wrong still?
rgds,
robi
</Context>
Mark Thomas-11 wrote:
>
> robi wrote:
>> Dear all,
>>
>> I am trying to use JDBC and transactions in Tomcat 5.5.20 with JOTM (as
>> explained this tutorial
>> http://jotm.objectweb.org/current/jotm/doc/howto-tomcat-jotm.html).
>>
>> But I am getting the following error when I do
>> http://localhost:8080/dbtest/test.jsp,
>>
>> " javax.naming.NameNotFoundException:Name jdbc is not bound in this
>> context
>> "
>
> Look in the logs to see what errors you have
>
> Have a look at the Tomcat docs:
> http://tomcat.apache.org/tomcat-5.5-doc/jndi-datasource-examples-howto.html
>
> Rather than using <ResourceParams ... />, put everything in the
> <Resource ... /> as per the docs.
>
> Mark
>
> ---------------------------------------------------------------------
> To start a new topic, e-mail: users@tomcat.apache.org
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
>
>
>
--
View this message in context: http://www.nabble.com/Error%3A-Name-jdbc-is-not-bound-in-this-context-tf2958032.html#a8277572
Sent from the Tomcat - User mailing list archive at Nabble.com.
---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org
Re: Error: Name jdbc is not bound in this context
Posted by Mark Thomas <ma...@apache.org>.
robi wrote:
> Dear all,
>
> I am trying to use JDBC and transactions in Tomcat 5.5.20 with JOTM (as
> explained this tutorial
> http://jotm.objectweb.org/current/jotm/doc/howto-tomcat-jotm.html).
>
> But I am getting the following error when I do
> http://localhost:8080/dbtest/test.jsp,
>
> " javax.naming.NameNotFoundException:Name jdbc is not bound in this context
> "
Look in the logs to see what errors you have
Have a look at the Tomcat docs:
http://tomcat.apache.org/tomcat-5.5-doc/jndi-datasource-examples-howto.html
Rather than using <ResourceParams ... />, put everything in the
<Resource ... /> as per the docs.
Mark
---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org