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